Моделирование баз данных в стандарте IDEF1x Бессарабов Н.В.
Моделирование баз данных в стандарте IDEF1x Бессарабов Н.В. [email protected] 2007 г.
Анализ Определяются цели создания информационной системы. Выбирается стратегия разработки. Исследуются риски. Определяются особенности управления проектом. Подробно исследуют бизнес-процессы и выявляют информацию, необходимую для их выполнения. Эту работу можно вести в рамках диаграмм “сущность-связь”. Выделяют сущности, их атрибуты и связи между ними. Создают информационную модель. На следующем этапе проектирования будет разработана модель данных. Особое внимание следует уделить полноте информации, анализу возможных противоречий, поиску неиспользуемых и дублирующихся данных. Помните, что заказчику легче формулировать спецификации отдельных компонентов системы, а не всей системы. Два взаимосвязанных аспекта спецификации: функциональный - описание бизнес-процессов; информационный - описание данных, необходимых для управления бизнес-процессами. Бессарабов Н.В.2007
Проектирование На этапе проектирования используя результаты анализа разрабатывают: схему базы данных (описания таблиц, представлений, столбцов, ограничений целостности, индексов, последовательностей, кластеров, процедур, функций курсоров и т.д.); набор спецификаций модулей приложения. Схема базы и спецификации модулей приложения должны быть согласованы с результатами этапа анализа и между собой. Важнейшая задача этапа проектирования инфор- мационной системы – обеспечение производительности. Рекомендуется результаты проектирования оформлять в виде единого документа, который называется технической спецификацией (ТС). Бессарабов Н.В.2007
Реализация Разработка это написание кодов приложения, в том числе: Скриптов создающих базу и, может быть, заполняющих ее (серверная часть приложения); Текстов хранимых процедур, функций, триггеров, курсоров (серверная часть приложения); Текстов интерфейсов пользователя (клиентская часть приложения); Коммуникационная часть системы. Важнейшие компоненты реализации: Продуманное всестороннее тестирование; Периодическое возвращение к этапам анализа и проектирования. Всегда помните совет классика: “Кодированию программы следует сопротивляться до последней возможности.” Бессарабов Н.В.2007
Две модели жизненного цикла информационной системы Последовательная (waterfall) Каждый этап выполняется для всей системы. Система разрабатывается и внедряется вся сразу, а не отдельными модулями. Следующий этап начинается после завершения предыдущего Инкрементная Система разбивается на модули, разрабатываемые раздельно и не одновременно Функциональность системы наращивается постепенно Итерации повторяются многократно и могут перекрываться по времени Бессарабов Н.В.2007
Последовательная модель ЖЦ Анализ Проектирование Разработка и тестирование Внедрение Эксплуатация и сопровождение Замечание: Этап внедрения требует в основном организационных усилий. Сопровождение это постоянные доработки информационной системы; составляет порядка 2/3 общей стоимости владения. Бессарабов Н.В.2007
Недостатки последовательной модели Внедрение системы и поиск основной массы ошибок откладываются до окончания разработки Пользователи не работают с системой до момента внедрения и не имеют времени для оценки и изменения постановки задачи Руководство заказчика оценивает работу только по бумажным документам. Это порождает недоверие Почти невозможно написать хорошую спецификацию не имея возможности ее последовательного уточнения. Для этого желательно работать с интерфейсами пользователя, тестировать отдельные алгоритмы, просматривать отчеты Бессарабов Н.В.2007
Инкрементная модель ЖЦ В один момент времени могут прорабатываться несколько этапов, обычно для разных подсистем. Возможен возврат на всю глубину последовательности этапов. Бессарабов Н.В.2007
Понятие о спиральной модели ЖЦ ПРОДУКТ НАЧАЛО Планирование следующей итерации Определение целей, альтернатив и ограничений Идентификация и разрешение рисков, оценка альтернатив Разработка продукта на очередной стадии Принципы функционирования Анализ требований Проектирование Кодирование и тестирование Кодирование и тестирование Анализ риска Прототипирование Заимствовано из []
Семантические модели данных На начальной стадии создания приложения (анализ) необходимо иметь модель предметной области, обеспечивающую неформальное описание всех особенностей задачи известных постановщику. При этом отбрасывание деталей, которые “не ложатся” на модели данных, применяемые на стадии реализации проекта, может привести к существенному искажению постановки задачи. На этапе анализа полноту сведений следует предпочесть возможности их формального описания. В рамках семантической модели создается концептуальная схема базы данных, которая вручную или автоматизированно (но не автоматически) преобразуется в схему базы допустимую в рамках моделей данных, принятых на следующих стадиях жизненного цикла проекта– проектировании и разработки. Бессарабов Н.В.2007 Бессарабов Н.В.2007
Семантическая модель “Сущность-Связь” (Entity-Relationship) Наиболее известна семантическая модель “сущность – связь” (“entity – relationship”) предложенная Питером Пин Шен Ченом (Peter Chen) в 1976 г. Три основных понятия ER-модели: сущность, связь и атрибут. Бессарабов Н.В.2007
Тип “Сущность” Сущность – реальный или воображаемый объект, информация о котором должна сохраняться. Сущность это тип, а не экземпляр. На ER-диаграммах сущность представляется прямоугольником, в котором обязательно указывается имя сущности. Дополнительно можно указывать примеры экземпляров сущности. При определении типа сущности необходимо гарантировать, что каждый экземпляр сущности может быть отличим от любого другого экземпляра той же сущности. Это требование аналогично требованию отсутствия кортежей-дубликатов в реляционных таблицах. Бессарабов Н.В.2007 Магазин например, Табрис Магнит
Тип “Связь” Связи в рассматриваемом варианте ER-диаграмм бинарные, то есть устанавливаются между двумя типами сущностей. Можно использовать связи с большей арностью. Связь – это тЍповое понятие, устанавливающее правила связывания. Каждый экземпляр типа связи, устанавливается между экземплярами типа сущности. Может существовать рекурсивная связь между типом сущности и им же самим (его дубликатом). Концы бинарной связи характеризуется: именем роли (имя конца связи), степенью конца связи (сколько экземпляров данного типа сущности должно присутствовать в каждом экземпляре данного типа связи), обязательность связи (т. е. любой ли экземпляр данного типа сущности должен участвовать в некотором экземпляре данного типа связи). Бессарабов Н.В.2007
Обозначения Бессарабов Н.В.2007
Условность разделения на сущности, связи и атрибуты Разделение на сущности, связи и атрибуты условно. Пример: То, что студент должен относиться к какой-нибудь учебной группе можно выразить: Как связь Как пара атрибутов Как сущность Замечание: Не следует делать вывод о том, что выбор сущностей произволен и нет предпочтительного варианта. Студент Группа Студент Группа Состав группы Входит в состав группы Группа Состав Атрибут “Состав” многозначный Бессарабов Н.В.2007
Нормализация в ER-диаграммах Сущности соответствует отношение в реляционной модели данных. Из наличия такого отображения вытекает возможность переноса нормализации в ER-диаграммы. Простой способ получения отношений сразу в третьей нормальной форме и уточнения до НФБК: Выделите простые сущности, не содержащие в себе другие сущности. Уточните ключевые атрибуты, выделив все альтернативные ключи. Чтобы окончательно убедиться в простоте сущностей проверьте наличие ФЗ кроме зависимостей от ключа. Если они обнаружены, декомпозируйте такие сущность по Хису. Если есть пересекающиеся ключи, проверьте сущест- вование зависимостей между ключами и при их обнаружении получите НФБК Бессарабов Н.В.2007
Примеры ER-диаграмм Диаграммы рисуются на доске Бессарабов Н.В.2007
Моделирование данных в ERWin В ERWin используется три вида нотации: По стандарту IDEF1X По стандарту IE (Information Engineering) По стандарту DM (Dimensional Model) и всего пять уровней представления данных: Уровень сущности Уровень атрибутов Уровень описаний Уровень ключей Уровень иконок Бессарабов Н.В.2007
Локализация ER-диаграммы в ERWin Установка шрифтов для обозначения имен сущностей, атрибутов и отношений Бессарабов Н.В.2007
Создание сущности в ERWin (1/2) Создание сущности Название сущности Ключевые атрибуты Неключевые атрибуты Бессарабов Н.В.2007
Создание сущности в ERWin (2/2) Запись определений (Definition), примечаний (Note и Note2) и свойств, определенных пользователем (User Definied Properties --UDP) Бессарабов Н.В.2007
ER-диаграммы в ERWin Три уровня представления сущности Entity level Attribute level Definition level Задание определения Бессарабов Н.В.2007
Еще два уровня представления сущности вызываемые только из меню Уровень Primary Key Уровень Icon Вызов уровня представления из меню Бессарабов Н.В.2007
Определения атрибутов Определения атрибутов должны иметь такую же базовую структуру как и определения сущностей. Определения также должны, где только возможно, содержать правила, определяющие возможные значения атрибутов. Пример: атрибут «статус покупателя» Статус-покупателя: Код, описывающий взаимосвязь между ПОКУПАТЕЛЕМ и нашим бизнесом. Допустимые значения: A, P, F, N
Сильные и слабые сущности (1/2) Может оказаться, что в первичный ключ сущности обязательно необходимо включить внешний ключ. Такая сущность называется слабой или зависимой. Сущность ИГРОК зависима потому, что без указания команды его не выделишь однозначно. В ERWin’е зависимые cущности изображаются прямоугольниками со скругленными краями. До установления связи И после Бессарабов Н.В.2007
Сильные и слабые сущности (2/2) Сильная сущность существует “сама по себе”. Первичные ключи у нее тоже свои, то есть определяются только своими полями (свойствами). На ER-диаграммах в ERWin сильные сущности представляются прямоугольниками. Слабая сущность для идентификации своих экземпляров требует привязки к экземпляру связанной с ней, обычно сильной, сущности. С этой целью первичный ключ слабой сущности использует поля этой связанной с ней сущности, что дает повод говорить о миграции ключей. На ER- диаграмме в ERWin слабая сущность представляется прямоугольником с закругленными углами. Примеры сильных и слабых сущностей приведены ниже в слайдах о нормализации Бессарабов Н.В.2007
Связи Связи это соединения и ассоциации между сущностями. Связи в ERWin’е изображаются линиями, сплошными или в виде штрихов, на концах которых помещаются фигуры, указывающие на мощность конца связи и особенности связи. Связи именуются глаголами, которые показывают, как соотносятся сущности между собой. Пример: Бессарабов Н.В.2007
Разрешение связей вида “многие-ко-многим” Значения элементов ассоциативной сущности: 1a, 1b, 3b, 4b, 5b Бессарабов Н.В.2007
Пример связи вида “многие-ко-многим” и начало ее разрешения Бессарабов Н.В.2007
Созданная ассоциативная сущность (в обозначениях IDEF1X и IE) Бессарабов Н.В.2007
Изменение нотации (запись в IE) Переход к нотации IE в логической модели (путь “Model” - “Model Properties”) Бессарабов Н.В.2007
Шаблоны связей Бессарабов Н.В.2007
Установка видимости первичных, внешних и альтернативных ключей На логическом уровне выберите в меню Format – Entity Display Затем установите галочки в позициях Primary Key Designator, Foreign Key Designator, Alternative Key Designator На физическом уровне выберите в меню Format – Table Display Затем установите галочки в позициях Primary Key Designator, Foreign Key Designator, Alternative Key Designator Бессарабов Н.В.2007
Альтернативные ключи Потенциальные ключи, не использующиеся как первичные, могут быть определены как альтернативные ключи и записаны в секции данных модели с символом (AKn.m), где n.m – номер альтернативного ключа в формате “номер_сущности”. “номер_ключа”.
Инверсные входы Атрибуты, не являющиеся уникальными, но использующиеся для поиска информации в таблице, называются инверсными входами. По ним может быть построен неуникальный индекс. Атрибуты назначенные инверсными входом помечаются справа символом IEn.m, где n.m – номер альтернативного ключа в формате “номер_сущности”. “номер_ключа”. Бессарабов Н.В.2007
Создание групп ключей кроме первичного Нажмите на кнопку New. Помните, что для успешного завершения в группе Должен быть хотя бы один атрибут Бессарабов Н.В.2007
Альтернативные и инверсные ключи Бессарабов Н.В.2007
Пример сущности с первичным, альтернативным и инверсными ключами Альтернативный ключ отображается в схеме базы ограничением целостности Unique Инверсный ключ порождает дополнительный неуникальный индекс. Бессарабов Н.В.2007
Виды ключей на физическом уровне Бессарабов Н.В.2007
Альтернатив-ный ключ и созданный скрипт CREATE TABLE Customer ( Cast_name VARCHAR2(20) NOT NULL, Cast_addr VARCHAR2(20) NULL, Cust_nomb INTEGER NOT NULL); CREATE UNIQUE INDEX XAK1Customer ON Customer (Cast_name); ALTER TABLE Customer ADD ( PRIMARY KEY (Cust_nomb) ) ; Бессарабов Н.В.2007
Сущность с инверсным ключом CREATE TABLE Customer ( Cast_name VARCHAR2(20) NOT NULL, Cast_addr VARCHAR2(20) NULL, Cust_nomb INTEGER NOT NULL); CREATE UNIQUE INDEX XAK1Customer ON Customer (Cast_name); CREATE INDEX XIE1Customer ON Customer (Cast_addr); ALTER TABLE Customer ADD ( PRIMARY KEY (Cust_nomb) ) ; Бессарабов Н.В.2007
Роли При многократной миграции внешнего ключа следует уточнить или изменить определение его атрибутов, чтобы разъяснять его роль в дочерней сущности. Несмотря на то, что дублированные атрибуты одинаковы, они могут иметь различные определения. Пример: Бессарабов Н.В.2007
Установка для передачи ролей Бессарабов Н.В.2007
Нормализация в ERWin
45 Пример первой нормальной формы (1НФ) Неатомарный столбец Бессарабов Н.В.2011 На самом деле здесь непервая нормальная форма Приведенный способ получения 1НФ называется “выравнивание таблицы”
46 Определения 1НФ Определение 1НФа (через атрибуты): Отношение находится в 1НФ, если значения всех его атрибутов атомарны. Определение 1НФк (через ключи): Отношение находится в 1НФ, если оно имеет ключ. Утверждение: 1НФа 1НФк. В самом деле, по определению реляционного отношения кортежи в отношении не повторяются. Если еще атрибуты атомарны, то есть удовлетворяют требованию предъявляемому в реляционной теории, то ключ в крайнем случае образуют все атрибуты, то есть ключ всегда существует. Замечание: Обратное утверждение не верно. Бессарабов Н.В.2011
47 Правила приведения к 1НФ (выделение в отдельное отношение) Разделить составные атрибуты (в примере это “Дата зачисления и увольнения”) на простые (атомарные) (“Дата зачисления” и “Дата увольнения ”) Выделить “повторяющиеся” (однотипные, близкие) атрибуты (в примере это “Хобби” и “Тлф”) Для каждой такой группы атрибутов создать новую справочную сущность с одним атрибутом для повторяющейся группы Перенести в нее все значения повторяющихся атрибутов Установить идентифицирующую связь типа 1:N от исходной сущности к каждой созданной справочной сущности Бессарабов Н.В.2011 Почему связь должна быть идентифицирующей? Потому, что выделенные справочные сущности только уточняют свойства основной сущности и без привязки к экземпляру основной сущности их смысл теряется. Например, на следующем слайде справочная сущность “хобби” имеет смысл “хобби данного сотрудника”, а без привязки её смысл “хобби вообще”, что не соответствует смыслу исходного отношения.
48 Пример приведения к 1НФ (выделение в отдельное отношение) Ненормализованное отношение Отношения в 1НФ Телефон Табельн. номер (FK) Телефон Хобби Табельн. номер (FK) Хобби Сотрудник Табельн. номер Фамилия Имя Отчество Должность Оклад Дата зачисления Дата увольнения Сотрудник Табельн. номер Фамилия Имя Отчество Должность Хобби_1 Хобби_2 Оклад Тлф_1 Тлф_2 Тлф_3 Дата зачисления или увольнения Бессарабов Н.В.2011
49 Приведение к 1НФ
Правило приведения к 2НФ Выделить неключевые атрибуты, зависящие от части первичного ключа. Иначе говоря, найти функциональную зависимость группы неключевых атрибутов от части атрибутов ключа. Создать новую сущность. В соответствии с теоремой Хиса все ее атрибуты входят в найденную выше функциональную зависимость. Вычеркнуть атрибуты-значения найденной функции в исходной сущности. Установить идентифицирующую связь 1:N или N:1 от исходной сущности к созданной сущности. Бессарабов Н.В.2007
Пример приведения к 2НФ (в ERWin) Проект Наименование проекта Таб_номер_ рук Дата начала Дата завершения Фамилия Имя Отчество Должность Проект Наименование проекта Рук.,Табельный номер (FK) Дата начала Дата завершения Сотрудник Табельный номер Фамилия Имя Отчество Должность Ненормализованное Отношение в 2НФ отношение Бессарабов Н.В.2007
Правило приведения к 3НФ Найти функциональную зависимость неключевых атрибутов от других неключевых атрибутов. Создать новую сущность. В соответствии с теоремой Хиса все ее атрибуты входят в найденную функциональную зависимость. Вычеркнуть атрибуты-значения найденной функции в исходной сущности. Установить неидентифицирующую связь от созданной сущности к исходной сущности Бессарабов Н.В.2007
Пример приведения к 3НФ (в ERWin) Пример: Функция f: Должность Оклад Ненормализованное Нормализованное отношение отношение Сотрудник Табельный номер Фамилия Имя Отчество Должность Оклад Сотрудник Табельный номер Фамилия Имя Отчество Должность (FK) Должность Должность Оклад Бессарабов Н.В.2007
54 Отношения в 3НФ, имеющие несколько ключей Пример 1:Отношение с тремя не пересекающимися ключами. Атрибут Табельный_Номер уникальный. Пример 2: Отношение с двумя пересекающимися ключами Бессарабов Н.В.2011
55 Нормальная форма Бойса-Кодда (Boyce-Codd) Исходное определение 3НФ основывается на предположении о том, что первичный ключ единственный. Может оказаться, что: отношение имеет два или более ключа-кандидата (альтернативных ключа); по крайней мере два из них конкатенированы; некоторые из конкатенированных ключей перекрываются (имеют общие атрибуты). В этом случае после получения 3НФ необходимо привести отношения к нормальной форме Бойса-Кодда, сокращённо, НФБК. Ещё её называли исправленной третьей нормальной формой. Бессарабов Н.В.2011
56 Какие функциональные зависимости исследуют при приведении к НФБК? Ответ: Только функции, действующие из одного ключа в не принадлежащие этому первому ключу атрибуты второго пересекающегося с ним ключа PK1 PK2 PK2 PK1,PK2 PK1 Бессарабов Н.В.2011
Правила преобразования в НФБК Совпадают с правилами для 3НФ. Отличия только в анализируемых функциях Бессарабов Н.В.2007
Мнемоника преобразования для НФБК (зависимость f:AC) Бессарабов Н.В.2007 f
59 Пример преобразования в НФБК Заменим отношение двумя проекциями: ”Бригада - Стажёр” и “Стажер - Наставник”. Бессарабов Н.В.2011 Обратите внимание на переименование Иванова из 2-й бригады
Заключение За прошедшие четыре часа бегло (и отрывочно) рассмотрена технология создания информационных систем. Стало понятно, что на начальной стадии анализа необходимо использовать семантические модели, такие как ER-диаграммы. Это позволяет зафиксировать массу неформализуемой, но важной для проекта информации. Подробно рассмотрена технология ERWin (локализация, создание сущностей, атрибутов и связей, использование ролей, разрешение связей типа “многие-ко-многим”). Описана нормализация в ERWin’е до НФБК. Осталось изучить денормализацию и такие частные, но важные особенности как наследование, сегментирование таблиц и т.п. После этого можно будет переходить к стыковке диаграмм описывающих бизнес-процессы и данные. Бессарабов Н.В.2007
27118-3_case_erwin.ppt
- Количество слайдов: 60

