Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
БД / УСТАНОВ_ЛЕКЦИИ_БД / УСТАНОВ_ЛЕКЦИИ_БД / ИСПОЛЬЗОВАЛА В КНИГЕ / 2_логическое проектирование БД.ppt
Скачиваний:
77
Добавлен:
26.05.2015
Размер:
1.06 Mб
Скачать

Пример логической модели в нотации 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

Соответствующая логическая модель (Visio)

Соответствующая логическая модель (Access)