- •2. Принципы логического проектирования БД
- •Проектирование баз данных
- •ЭТАПЫ проектирования БД
- •Концептуальная (инфологическая) модель - словесное описание предметной области. Наиболее наглядным является использование специальных
- •Отражение бизнес- процессов компании на модели
- •IDEF0
- •Методология IDEF
- •Состав нотаций стандарта языка IDEF
- ••IDEF1X (ER) - методология построения реляционных структур. IDEF1X относится к типу методологий СУЩНОСТЬ
- •Контекстная диаграмма IDEF0
- •Контекстная диаграмма (А-0)
- •Каждая диаграмма модели показывается вместе с ее отношением к другим диаграммам путем нанесения
- •Варианты
- •Нотация IDEF0
- •5 типов связей работ в IDEF0
- •Необходимость туннелирования потоков
- •Диаграмма дерева узлов модели
- •Моделирование потоков данных
- •2.Система или процесс изображается овалом. Имя системы – существительное.
- •Построение иерархии DFD
- ••Мини-спецификация является конечной вершиной иерархии DFD.
- •Типы диаграмм в стандарте IDEF3
- •Нотации языка ER
- •Значение знаков в нотации IE: “O” - заполнение атрибута не обязательно, например, отдел
- •Case-метод Баркера (ERD)
- •Моделирование данных
- •Последним шагом моделирования является идентификация атрибутов.
- •Модель Чена
- •Пример логической модели в нотации Relational
- •Вид в MS Visio модели в нотации реляционного (relational) моделирования языка ER. Эта
- •ER диаграмма (логическая модель БД) в MS Visio
- •Методология IDEF1X
- •Преобразование концептуальной модели в логическую
- •Язык ORM (Object-Role Modeling, моделирование ролей объектов) назван так Фалкенбергом (Falkenberg). В Европе
- •Язык ORM представляет бизнес-процесс как факт с различными типами объектов. Для установления типа
- •Пример ORM модели
- •Соответствующая логическая модель (Visio)
- •Соответствующая логическая модель (Access)
Пример логической модели в нотации Relational
Логическая и физическая модели реляционных БД создаются с использованием нотации relational нотации ER. Логическая модель отражает структуру БД с учетом особенностей типа модели данных. Переход к физической модели данных заключается в преобразовании имен сущностей и их атрибутов в соответствии с принятыми в СУБД правилами, а также определение и присвоение каждому атрибуту сущности типов данных, поддерживаемых выбранной СУБД.
|
Связи |
|
|
|
“много” |
|||||||||||||
|
|
|
|
|||||||||||||||
: |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
“один” |
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
“необязательная” |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Вид в MS Visio модели в нотации реляционного (relational) моделирования языка ER. Эта же нотация используется в диаграммах БД MS SQL Server.
Нотация языка ER для отображения схемы данных в СУБД MS Access. В отличие от MS Visio видно - по каким полям связаны таблицы
ER диаграмма (логическая модель БД) в MS Visio
Методология IDEF1X
•Метод IDEF1Х, разработанный Т.Рэмей основан на подходе П.Чена и позволяет построить модель данных, эквивалентную РМД в 3-ей нормальной форме.
•Сущность в методологии IDEF1X является независимой, если каждый экземпляр
сущности может быть однозначно идентифицирован без определения его отношений с другими сущностями (главная таблица). Сущность называется
зависимой, если однозначная идентификация экземпляра сущности зависит от его отношения к другой сущности (второстепенная таблица).
•Атрибуты изображаются в виде списка имен внутри блока сущности. Атрибуты, определяющие первичный ключ, размещаются наверху списка и отделяются от других атрибутов горизонтальной чертой.
•Сущности могут иметь внешние ключи, которые могут использоваться в качестве части целого первичного ключа или неключевого атрибута. Внешний ключ изображается с помощью помещения внутрь блока сущности имен атрибутов с индексом FK.
Преобразование концептуальной модели в логическую
1.Создать логическую или концептуальную модель можно с помощью CASE средств: Oracle Designer (Oracle), PowerDesinger (Sybase), AllFusion Data Modeler или ERwin (Computer Associates), AllFusion Process Modeler или BPWin (Computer Associates), Visio Enterprise Edition (MS). ERWin и BPWin – разработки компании Logic Works, затем права принадлежали PLATINUM technologies, теперь принадлежат компании Computer Associates.
2.В BPWin из состава DFD-диаграмм программно выделяются внешние сущности (хранилища данных) и переносятся на ER-диаграмму (ER – Entity Relationship, сущность-связь ). При этом сохраняется наиболее распространенная в рамках DFD моделей нотация IDEF1X описания РБД. Анализируются функции и определяются связи между сущностями предметной области. Определяются ключевые атрибуты и состав неключевых атрибутов сущностей.
3.В MS Visio для создания концептуальной модели, программно преобразуемой в логическую модель, используется язык ORM (Object-Role Modeling). Использование MS Visio позволяет на всех этапах моделирования выполнить проверку корректности моделей, выявить несоответствие типов данных и внести в их описание изменения до генерации физической модели.
Язык ORM (Object-Role Modeling, моделирование ролей объектов) назван так Фалкенбергом (Falkenberg). В Европе метод известен как NIAM (Natural language Information Analysis Method). Данный язык также имеет нотации ORM2, MOON (Normalized Object-Oriented Method), PSM (Predicator Set Model), NORM (Natural Object-Relationship Model), FORM (Formal ORM), FCO-NIAM (Fully Communication Oriented NIAM). Система OSA (Object-oriented Systems Analysis) включает упрощенный ORM-компонент.
Объектно-ролевое моделирование ORM использует набор типовых отношений между объектами. Несмотря на то, что данный язык моделирования не получил широкого распространения, он позиционируется компанией MicroSoft в лице Тэрри Халпина (Terry Halpin) как наиболее приемлемый для общения специалиста предметной области и разработчика ИС благодаря тому, что ограниченное количество вариантов отношений между объектами позволяет формализовать их описание почти на разговорном языке.
Язык ORM представляет бизнес-процесс как факт с различными типами объектов. Для установления типа отношения между объектами служит роль, например, учится (“Студент учится в вузе”) и/или учатся (“В вузе учатся студенты”). Большинство отношений между объектами – бинарные. Унарное отношение - Студент женат. Пример ORM-диаграммы для фактов “у человека есть телефон”, “человек живет по определенному адресу”, “человек родился в определенный день”, “человек был принят на работу в определенный день”:
Стрелка на изображении факта “у человека есть телефон” - “возможно, что у одного человека есть более одного телефона и что у более, чем одного человека, есть один и тот же телефон (например, в организации)”.
Для факта “человек родился в определенный день” комбинация стрелки и точки означает, что каждый человек родился в один и только один конкретный день.
Если линия вокруг объекта пунктирная, то значение объекта не уникальное.
Пример ORM модели |
P |
Kod_prep |
|
|
|
|
|
||
|
|
|
|
|
|
Prepods |
has |
|
|
|
|
|
|
|
include / is included in |
|
|
Prepod |
|
Kod_att |
|
has |
|
|
|
P |
Kod_ved |
|
|
|
|
|
||
has |
|
|
|
|
|
has |
|
|
|
Date |
include / is included in |
|
|
|
|
Nom_ved |
|
||
has |
|
|
|
|
|
has |
|
|
|
Ball |
Docs |
|
|
|
|
Tip_doc |
{ 'ведомость', |
||
|
|
|||
has |
|
has |
|
'направление' } |
Attests |
|
|
|
|
|
|
|
{ 1 .. 12 } |
|
|
|
|
Semestr |
|
include / is included in |
include / is included in |
has |
|
|
|
|
|
|
|
Napravl |
|
|
Uch_god |
|
include / are included in |
|
has |
|
{ 'экзамен', |
|
|
|
||
|
|
|
|
'зачет', |
|
|
|
Tip_att |
'курсовая', |
include / is included in include / is included in |
include / is included in |
has |
|
'дипломная', |
Spisok |
|
|
'ГАК' } |
|
|
|
|
Kod_zach |
Predmets |
Kod_pred |
F_obuch |
{ 'очная', |
has |
has |
|
'заочная', |
|
Student |
Predmet |
has |
'экстернат' } |
|
has |
|
Kurs |
|
|
has |
|
|
||
|
|
{ 1 .. 6 } |
||
|
|
|
||
|
|
|
has |
|
include / are included in |
|
|
|
|
|
|
|
|
|
Kod_group |
include / is included in |
|
Date_att |
|
|
has |
|
||
|
|
|
|
has |
Group |
Specs ! |
Spec_name |
Date_out |
|
|
|||
has |
|
has |
||
|
|
|
||
has |
|
include / is included in |
|
Date_in |
Groups |
|
|
has |
|
|
|
|
include / is included in