Проектирование информационных систем

Основы работы в Erwin. Построение логической модели заданной предметной области. Построение физической модели данных. Генерация схемы базы данных. Расчет размера базы данных. Редактор хранимых отображений. Характеристика и определение атрибутов сущностей.

Рубрика Программирование, компьютеры и кибернетика
Вид методичка
Язык русский
Дата добавления 07.06.2012
Размер файла 252,1 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Министерство сельского хозяйства Российской Федерации

Федеральное агентство по рыболовству

Федеральное государственное образовательное учреждение

высшего профессионального образования

«МУРМАНСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ»

Кафедра информационных систем

МЕТОДИЧЕСКИЕ УКАЗАНИЯ К ЛАБОРАТОРНЫМ РАБОТАМ

«Проектирование информационных систем»

Разработала ассистент каф. ИС Ситохина Е.В.

Мурманск - 2006

ОГЛАВЛЕНИЕ

Лабораторная работа № 1

Основы работы в Erwin. Построение логической модели данных

Лабораторная работа № 2

Построение физической модели данных. Генерация схемы базы данных

Лабораторная работа № 3

Расчет размера базы данных

Лабораторная работа № 4

Создание отчетов в Erwin

Лабораторная работа № 1. Основы работы в Erwin. Построение логической модели данных

Цель работы:

овладение навыками работы в Erwin;

построение логической модели заданной предметной области.

Задание:

Построить логическую информационную модель поставки товаров в соответствии с договорами средствами Erwin.

Последовательность выполнения работы

Знакомство с пользовательским интерфейсом

Загрузите программу Erwin.

В появившемся диалоговом окне установите переключатель Crеаte а New Model. На экране появится диалог Create Model - Select Template, где необходимо выбрать уровень моделирования.

Erwin имеет два уровня моделирования: логический и физический. На логическом уровне данные представляются так, как они выглядят в реальном мире. Объектами логического уровня являются сущности и атрибуты.

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

Установите переключатель Logical/Physical для создания модели с логическим и физическим уровнями.

В полях DataBase и Version указывается тип и версия сервера, для которого создается модель. Выберите в списке Access, 2000. Нажмите кнопку ОК.

На экране появится основное окно программы.

В верхней части окна находится титульная строка, в которой указано название программы, наименование модели, наименование подмножества (Subject Area) и хранимого отображения (Stored Display). Основную часть пространства программы занимает рабочая область, в которой создается ER-диаграмма.

Для переключения между логическим и физическим уровнями на панели инструментов имеется список (рис 1.1).

Рис. 1.1.

Помимо этого списка, на панели инструментов имеются кнопки (см. табл. 1.1).

Таблица 1.1.

Кнопки, расположенные на панели инструментов программы Erwin

Кнопка

Назначение

Создание, открытие, сохранение и печать модели

Вызов диалога Report Browser для генерации отчетов

Изменение уровня просмотра модели: уровень сущностей, уровень атрибутов, уровень определений

Изменение масштаба просмотра модели

Генерация схемы БД, выравнивание схемы с моделью и выбор сервера (доступны только на уровне физической модели)

Переключение между областями модели Subject Area

Для непосредственной работы с элементами модели в программе имеется палитра инструментов (Erwin Toolbox), представляющая собой «плавающее окошко» (рис. 1.2). При необходимости палитру инструментов можно убирать с экрана и вызывать нажатием комбинации клавиш «CTRL-T».

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Рис. 1.2. Палитра инструментов на логическом уровне

Создание хранимых отображений

В процессе создания модели она пройдет несколько уровней детализации. Поэтому создадим две закладки хранимых изображений на уровне сущностей и на уровне атрибутов.

Выберите пункт главного меню FORMAT | Stored Display Settings. На экране появится окно редактирования хранимых отображений (рис. 1.3).

Рис. 1.3. Редактор хранимых отображений

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

На вкладке General в поле Author введите с клавиатуры свое имя.

Установите опции Logical Model (логическая модель - хранимое отображение будет использоваться только на логическом уровне) и Display Shadows (показывать тени - прямоугольники сущности будут изображаться на экране с «тенью»).

В рамке Relationships lines (линии связи) устанавливается способ изображения линий связи между сущностями. В режиме Orthogonal (ортогональный) линии связи прокладываются параллельно осям XY, в диагональном режиме (Diagonal) линии связи могут проводиться под произвольным углом. По умолчанию задан ортогональный режим изображения связей, оставьте эту установку без изменений.

Перейдите на закладку Logical (логический уровень).

Установите переключатель Display Level (уровень отображения) в положение Entity (сущность). Тем самым задается, что на экране будут показаны только сущности, без атрибутов.

Установите флажок Verb Phrase (глагольная фраза), чтобы на диаграмме отображались глагольные фразы, именующие связи между сущностями. Остальные флажки на данной странице оставьте без изменений.

Переименуйте отображение Display1, нажав на кнопку Rename. В появившемся диалоге введите имя отображения Уровень сущностей. Нажмите кнопку ОК и еще раз ОК. Это название появится в титульной строке, а также на закладке в нижней части экрана.

Снова выберите пункт меню FORMAT | Stored Display Settings и создайте еще одно хранимое отображение под названием Уровень атрибутов. Для этого нажмите кнопку New и введите это название с клавиатуры.

Выделите отображение Уровень атрибутов в списке и на странице Logical установите переключатели, как показано на рис. 1.4.

Рис. 1.4. Установка свойств уровня атрибутов

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

Рис. 1.5. Закладки хранимых отображений

Начиная разработку модели, необходимо выполнить настройку шрифтов. Для этого выберите пункт главного меню FORMAT | Default Fonts & Colors. В появившемся окне редактирования перейдите на вкладку General и в группе All Fonts в поле Font из списка выберите шрифт Arial Cyr и нажмите ОК.

Внесение в модель сущностей

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

Выберите на панели инструментов (ERwin Toolbox) кнопку Сущность , щелкнув по ней указателем мыши. Затем щелкните мышкой по тому месту на диаграмме, где необходимо расположить новую сущность. На поле диаграммы появится прямоугольник, изображающий новую сущность, с автоматически сгенерированным именем «Е/1».

Введите с клавиатуры имя сущности «Покупатель» и нажмите Enter.

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

Щелкнув правой кнопкой мыши по сущности и выбрав из контекстного меню пункт Entity Properties, можно вызвать редактор сущностей Entities (рис. 1.6), который позволяет изменять свойства выбранной сущности. Редактор сущностей также можно вызвать через главное меню: Model | Entities.

Рис. 1.6. Редактор сущности

В верхней части окна редактора находится список всех сущностей, имеющихся на диаграмме. С его помощью можно выбрать сущность, свойства которой необходимо посмотреть или изменить. По умолчанию, выбранной является выделенная на диаграмме сущность, по которой щелкнули мышью. Далее имеется поле Name, в котором высвечивается имя сущности. Имя можно редактировать.

Ниже в окне редактора находится ряд закладок:

Definition (определение) - на этой странице вводится определение сущности.

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

UDP - определяемые пользователем свойства.

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

Для каждой сущности введите определение Definition.

Определение атрибутов сущностей

Определив сущности, необходимо внести в схему и атрибуты этих сущностей. В табл. 1.2 приведен перечень сущностей и их атрибутов с характеристиками для рассматриваемой предметной области.

erwin логический модель база данное

Таблица 1.2.

Характеристика атрибутов сущностей

Тип сущности

Атрибут

Ключ

Тип данных

Покупатель

КОД_ПОК

PK

Number

ИНН

Number

НАИМ_ПОК

String

АДРЕС_ПОК

String

ТЕЛ

String

НОМ_РСЧ

String

Банк

String

Товар

КОД_ТОВ

PK

Number

НАИМ_ТОВ

String

ЕИ

String

ЦЕНА

Number

СТАВКА_НДС

Number

Склад

КОД_СК

PK

Number

НАИМ_СК

String

АДРЕС_СК

String

ОТВ_ЛИЦО

String

Договор

НОМ_ДОГ

PK

Number

ДАТА_ДОГ

Datetime

СУММА_ДОГ

Number

Накладная

НОМ_НАКЛ

PK

Number

ДАТА_ОТГР

Datetime

СУММА_НАКЛ

Number

Выделите сущность Покупатель, щелкнув по ней указателем мыши, а затем вызовите пункт меню Model | Attributes. То же самое можно выполнить, выбрав пункт Attributes контекстного меню. При этом на экране появится окно редактора атрибутов Attributes.
Редактор атрибутов построен по тому же принципу, что и редактор сущностей. В верхней части диалогового окна находится выпадающий список, в котором можно выбрать сущность для редактирования. Рядом имеется кнопка, вызывающая редактор сущностей.
Для ввода нового атрибута нажмите кнопку New.
В диалоге New Attribute в поле Attribute Name введите имя атрибута -КОД_ПОК, в поле Column Name необходимо указать имя соответствующей атрибуту в физической модели колонки. По умолчанию Erwin генерирует имя колонки из имени атрибута, заменяя пробелы символом подчеркивания. Поскольку СУБД Access, для которой мы создаем модель, допускает использование букв русского алфавита в идентификаторах колонок таблиц, подставляемое по умолчанию значение в Column Name мы оставляем без изменения.
В группе Domain находится список доменов, представляющих основные типы данных, используемые в СУБД: строковый (string), числовой (number), время (datetime), двоичный (blob). Для атрибута КОД_ПОК выберите числовой домен - Number.
После нажатия кнопки ОК атрибут появится в окне редактора.
Выделите атрибут КОД_ПОК и установите на закладке General флажок Primary Key, так как данный атрибут является первичным ключом сущности Покупатель.
Аналогичным образом введите остальные атрибуты сущности Покупатель в соответствии с табл. 1.2.
В результате окно редактора атрибутов будет выглядеть так, как показано на рис. 1.7.
Порядок следования атрибутов в списке можно изменять при помощи кнопок со стрелками, находящимися над окном списка. Для этого необходимо выбрать нужный атрибут в списке, нажать одну их этих кнопок, и атрибут сместится в списке в направлении стрелки, изображенной на кнопке.
Нажмите кнопку ОК.
Рис. 1.7. Атрибуты сущности Покупатель
Как вы помните, мы создали два хранимых отображения - «Уровень сущностей» и «Уровень атрибутов». До сих пор мы работали на уровне сущностей, где сущности изображались просто прямоугольниками с названием сущности внутри. Перейдите на вкладку «Уровень атрибутов». Сущности изображаются здесь в виде прямоугольников, однако имя сущности пишется над прямоугольником, а внутри дается список атрибутов. Прямоугольник сущности делится на две части. В верхней части приводятся атрибуты первичного ключа, а в нижней - все остальные.
Пока на диаграмме определены только атрибуты сущности Покупатель, поэтому прочие сущности пусты.
Определите атрибуты остальных сущностей на диаграмме в соответствии с табл. 1.2.
Определение альтернативных ключей и инверсных входов
Альтернативный ключ (Alternate Key) - потенциальный ключ, не ставший первичным. Erwin позволяет выделять атрибуты потенциальных ключей и при генерации схемы БД генерировать по этим группам отдельные уникальные индексы.
Инверсный вход (Inversion Entry) - атрибут или группа атрибутов, которые не определяют экземпляр сущности уникальным образом, но часто используются для обращения к экземплярам сущности. Erwin генерирует неуникальный индекс для каждого инверсного входа.
В табл. 1.3. приведен перечень ключевых групп, определенных для рассматриваемой предметной области.
Таблица 1.3.

Ключевые группы

Сущность

Атрибуты ключевой группы

Имя ключевой группы

Тип ключевой группы

Покупатель

ИНН

ИНН

Альтернативный ключ

Покупатель

НАИМ_ПОК

НАИМ_ПОК

Инверсный вход

Товар

НАИМ_ТОВ

НАИМ_ТОВ

Инверсный вход

Склад

НАИМ_СК

НАИМ_СК

Инверсный вход

Вызовите редактор ключевых групп Key Groups, щелкнув правой кнопкой мыши по сущности Покупатель и выбрав из контекстного меню пункт Key Groups. Редактор ключевых групп также можно вызвать через главное меню: Model | Key Groups.
Редактор ключевых групп содержит элементы управления:
Entity - поле с выпадающим списком, в котором следует выбрать сущность для редактирования.
Окно с перечнем ключевых групп. Каждая группа представлена отдельной строкой, включающей в себя имя (Key Group), тип (Type) и определение (Definition).

Кроме того, диалоговое окно редактора ключевых групп содержит следующие закладки:

Members (члены). Задаются члены ключевых групп и их порядок следования в группе.

General (общие установки). Переключатели, позволяющие задавать тип ключевой группы. Для первичного и внешнего ключа эти группы недоступны.

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

Note (примечание). Примечание к выбранной группе.

UDP (пользовательские свойства).

Нажмите кнопку New.

В окне New Key Group в поле Key Group введите имя ключевой группы - ИНН. В поле Index выводится генерируемое программой Erwin имя индекса. Оставьте его без изменений.

Переключатель Key Group Type задает тип создаваемого ключа. Это может быть альтернативный ключ (Alternate Key) или инверсный вход (Inversion Entry). Выберите Alternate Key и нажмите ОК. Вновь введенный альтернативный ключ появится в перечне ключей.

Перейдите на закладку Members. Новый ключ пока не содержит никаких атрибутов, поэтому правый список Key Group Members (члены ключевой группы) пуст. Выберите в левом списке атрибут ИНН и переместите его в правый список при помощи кнопки со стрелкой (см. рис. 1.8).

Рис. 1.8. Редактор ключевых групп

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

Установление связей между сущностями

Связь является логическим соотношением между сущностями. Связь имеет имя, мощность, тип.

Имя связи (Verb Phrase) - фраза, характеризующая отношение между родительской и дочерней сущностями. Для связи один-ко-многим достаточно указать имя, характеризующее отношение от родительской к дочерней сущности (Parent-to-Child). Для связи многие-ко-многим следует указывать имена как Parent-to-Child, так и Child-to-Parent.

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

Различают четыре типа мощности:

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

символом P помечается случай, когда одному

P экземпляру родительской сущности соответствуют 1 или много экземпляров дочерней сущности (исключено нулевое значение);

символом Z помечается случай, когда одному

Z экземпляру родительской сущности соответствуют 0 или

1 экземпляр дочерней сущности (исключены множественные значения);

цифрой помечается случай, когда одному экземпляру

N родительской сущности соответствует заранее заданное число экземпляров дочерней сущности.

Различают два типа связей: идентифицирующая и неидентифицирующая.

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

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

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

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

Для неидентифицирующей связи можно указать обязательность (Nulls). В случае обязательной связи (No Nulls) при генерации схемы БД атрибут внешнего ключа получит признак NOT NULL, несмотря на то, что внешний ключ не войдет в состав первичного ключа дочерней сущности. В случае необязательной связи (Nulls Allowed) внешний ключ может принимать значение NULL. Необязательная неидентифицирующая связь помечается прозрачным ромбом со стороны родительской сущности.

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

Определим связи между сущностями в нашей разрабатываемой модели согласно табл. 1.4.

Таблица 1.4.

Характеристика связей для заданной предметной области

Родительская сущность

Дочерняя сущность

Тип связи

Мощность связи

Нулевые значения

Имя связи

Покупатель

Договор

Неидентифицирующая

0 или 1 к 1 или более

No NULLS

заключает

Склад

Накладная

Идентифицирующая

0 или 1 к 1 или более

-

Выписывает

Договор

Накладная

Неидентифицирующая

0 или 1 к 1 или более

No NULLS

Составляется

Товар

Договор

Многие-ко-многим

Заказывается (Parent-to-Child), включает (Child-to- Parent)

Товар

Накладная

Многие-ко-многим

Отгружается (Parent-to-Child), включает (Child-to- Parent)

Создадим связь между сущностями Покупатель и Договор. Для этого выберите в палитре инструментов кнопку «Non-Identifying Relationship» (неидентифицирующая связь).
Затем щелкните сначала по родительской сущности - Покупатель, а потом по дочерней - Договор. Между сущностями появится пунктирная линия неидентифицирующей связи. Посреди линии связи проставляется генерируемая по умолчанию глагольная фраза - R/1.
Перейдите на уровень атрибутов и обратите внимание на то, что у сущности Договор добавился атрибут первичного ключа КОД_ПОК от сущности Покупатель и помечен буквами «FK».
Выделите связь, щелкнув по ней указателем мыши. Затем нажмите правую кнопку мыши и в контекстном меню выберите пункт Relationship Properties (редактор связей).
В верхней части редактора связей находится выпадающий список, содержащий полное название связи. В нашем случае осмысленная глагольная фраза для связи еще не определена, поэтому в этом поле значится «Покупатель R/1 Договор». Здесь же находятся две кнопки New и Delete, с помощью которых можно добавить на схеме новую связь или удалить существующую.
Кроме того, диалоговое окно редактора связей содержит следующие закладки:
General (общие свойства). Здесь задаются общие свойства связи - имя, тип и мощность связи.
Definition (определение). На этой странице вводится определение связи, облегчающее восприятие модели.
Rolename (Имя роли) - вводятся функциональные имена (для мигрирующих атрибутов).
RI Actions (Установки ссылочной целостности) - задаются правила ссылочной целостности.
Перейдите на закладку General. В группе Verb Phrase в поле Parent-to-Child введите имя связи - заключает.
В группе Cardinality (мощность связи) установите опцию One or More (P).
В группе Relationship Type (тип связи) установите опцию Non-Identifying (неидентифицирующая связь), а в группе Nulls (обязательность) включите флажок No Nulls, что означает недопустимость пустых значений внешних ключей.
Задайте остальные связи для сущностей заданной предметной области в соответствии с табл. 1.4.
В результате логическая модель будет иметь вид, показанный на рис. 1.9.
Рис. 1.9. Логическая модель
7. Установление категориальной связи
Некоторые сущности определяют целую категорию объектов одного типа. В ERwin в таком случае создается сущность для определения категории и сущности для каждого элемента категории, а затем вводится для них связь категоризации. Родительская сущность категории называется супертипом, а дочерние - подтипом.

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

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

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

Затем выбрать в палитре инструментов кнопку категориальной связи Complete Sub-category и щелкнуть сначала по родовому предку, а затем по первому потомку. После этого щелкнуть по символу категории, а потом по следующему потомку.

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

В окне редактора следует указать атрибут-дискриминатор (список Discriminator Attribute Choice), а также установить тип категории - полная (Complete) и неполная (Incomplete). Имя дискриминатора появится в диаграмме рядом с символом связи (см. рис. 1.10).

Рис. 1.10. Категориальная связь

Лабораторная работа № 2. Построение физической модели данных. Генерация схемы базы данных

Цель работы:

освоение роли CASE-средства Erwin при нормализации и денормализации;

построение физической модели заданной предметной области;

генерация средствами Erwin содержимого системного каталога для заданной СУБД.

Задание:

Построить физическую модель поставки товаров в соответствии с договорами средствами Erwin. Сгенерировать схему базы данных для СУБД Access.

Теоретические сведения

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

Существуют следующие виды действий или правил, определяемых в логической модели:

RESTRICT - запрет удаления, вставки или изменения экземпляра сущности.

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

SET NULL - при удалении экземпляра родительской сущности атрибутам внешнего ключа всех экземпляров дочерней сущности присваивается значение NULL.

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

NONE - никаких действий не предпринимается.

Эти правила задаются на вставку, удаление и изменение экземпляра как родительской, так и дочерней сущности. Таким образом, каждая связь должна обладать набором из шести правил, которые вводятся в поля, объединенные общим заголовком «RI Actions». При добавлении связи в диаграмму Erwin по умолчанию устанавливает для нее набор правил, которые можно редактировать.

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

Erwin отмечает повторное использование имени сущности и атрибута;

запрещает присвоение неуникальных имен атрибутов внутри одной модели (при соответствующей установке опции Unique Name), соблюдая правило «в одном месте - один факт».

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

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

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

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

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

Последовательность выполнения работы

Задание правил декларативной ссылочной целостности

Находясь на логическом уровне модели данных, выделите связь «заключает» между сущностями Покупатель и Договор, щелкнув по ней указателем мыши. Затем нажмите правую кнопку мыши и в контекстном меню выберите пункт Relationship Properties (редактор связей).

В окне редактора связей Relationship перейдите на вкладку RI Actions. Ознакомьтесь с правилами ссылочной целостности для связи «Покупатель - Договор», присвоенными по умолчанию. Данные установки запрещают вставку и изменение экземпляра дочерней сущности, а также удаление и изменение родительской сущности. Это означает, что не допускается удаление или изменение покупателя, если в базе данных имеются заключенные с ним договоры, а также ввод договора без указания покупателя или со ссылкой на несуществующего покупателя. Тем самым мы выполнили условие, по которому договор может существовать только для конкретного покупателя.

Проанализируйте установленные правила ссылочной целостности для всех остальных связей.

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

Нормализация данных

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

Создайте сущность Телефон, содержащую следующие атрибуты: КОД_ТЕЛ (первичный ключ, тип - number) и ТЕЛ (тип - string).

Свяжите сущности Покупатель и Телефон идентифицирующей связью. Установите мощность связи - One or More (P) и введите имя связи - имеет.

Переход к физическому уровню модели

В раскрывающемся списке, расположенном в правой части панели инструментов, выберите пункт Physical.

Erwin автоматически генерирует физическую модель данных для конкретной СУБД на основании логической модели по следующему принципу: сущности становятся таблицами, атрибуты - столбцами, а ключи - индексами.

Выбор сервера

Выполните команду Database | Choose Database.

В диалоговом окне Erwin/ERX - Target Server необходимо задать тип сервера - Access и его версию - 2000. Кроме того, здесь указывается используемый по умолчанию тип данных и условие NULL для вновь созданных колонок. Некоторые опции данного диалогового окна зависят от выбранного типа сервера.

После выбора сервера нажмите кнопку ОК.

Денормализация данных

На модели имеются две связи типа «многие-ко-многим»: Товар - Договор и Товар - Накладная, которые должны быть разрешены на физическом уровне. Результат разрешения данных связей представлен в табл. 2.1.

Таблица 2.1.

Результат разрешения связей «многие-ко-многим»

Связь

многие-ко многим

Имя ассоциативной таблицы

Новые колонки ассоциативной таблицы

Тип данных

Товар-Договор

Поставка_План

СРОК_ПОСТ

Datetime

КОЛ_ПОСТ

Number

СУММА_ПОСТ

Number

Товар-Накладная

Отгрузка

КОЛ_ОТГР

Number

СУММА_ОТГР

Number

Разрешение связей «многие-ко-многим» осуществляется автоматически при переходе на физический уровень, либо с помощью специального мастера Many Relationship Transform Wizard.

Для вызова данного мастера выделите связь «Товар - Договор», щелкнув по ней указателем мыши. Затем нажмите правую кнопку мыши и в контекстном меню выберите пункт Create Association Table (создать ассоциативную таблицу). На экране появится первый диалог мастера, содержащий текст о его назначении.

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

Введите в поле Table Name (имя таблицы) - Поставка_План. В поле Table Comment (комментарии к таблице) введите текст: Сведения о поставках товара по договору.

Нажмите кнопку Далее. На экране появится следующий диалог мастера, в котором указывается Transform Name (имя преобразования) и Transform Definition (определение преобразования).

Нажмите кнопку Далее и затем Готово.

На модели появилась новая таблица Поставка_План, связанная идентифицирующей связью с таблицами Товар и Договор.

Новую таблицу необходимо дополнить тремя колонками (см. табл. 2.1). Для этого выделите таблицу Поставка_План, щелкнув по ней указателем мыши. Затем нажмите правую кнопку мыши и в контекстном меню выберите пункт Columns (редактор колонок). Работа с данным редактором аналогична работе с редактором атрибутов.

Самостоятельно введите три новых колонки в соответствии с табл. 2.1.

Рассмотренным выше способом (с использованием мастера) преобразуйте связь «Товар - Накладная» и дополните полученную ассоциативную таблицу Отгрузка двумя колонками согласно табл. 2.1.

Корректировка типов и размеров полей

В полученной модели необходимо скорректировать типы и размеры полей для заданной СУБД Access в соответствии с табл. 2.2.

Таблица 2.2.

Типы данных и размеры колонок таблиц физической модели

Таблица

Колонка

Тип данных

Покупатель

КОД_ПОК

Integer

ИНН

Long Integer

НАИМ_ПОК

Text (25)

АДРЕС_ПОК

Text (40)

НОМ_РСЧ

Text (20)

Банк

Text (25)

Товар

КОД_ТОВ

Integer

НАИМ_ТОВ

Text (20)

ЕИ

Text (20)

ЦЕНА

Currency

СТАВКА_НДС

Integer

Склад

КОД_СК

Integer

НАИМ_СК

Text (20)

АДРЕС_СК

Text (30)

ОТВ_ЛИЦО

Text (30)

Договор

НОМ_ДОГ

Integer

ДАТА_ДОГ

Date/Time

СУММА_ДОГ

Currency

Накладная

НОМ_НАКЛ

Integer

ДАТА_ОТГР

Date/Time

СУММА_НАКЛ

Currency

Телефон

КОД_ТЕЛ

Integer

ТЕЛ

Text (15)

Поставка_План

СРОК_ПОСТ

Date/Time

КОЛ_ПОСТ

Integer

СУММА_ПОСТ

Currency

Отгрузка

КОЛ_ОТГР

Integer

СУММА_ОТГР

Currency

Для этого вызовите редактор колонок Columns через пункт главного меню Model | Column, либо через контекстное меню.
Редактируемая таблица выбирается в списке Table. Для каждой колонки таблицы на закладке Access определите тип данных согласно табл. 2.2, выбрав в поле Access Datatype из списка нужное значение.
Кроме того, здесь задается опция NULL (группа Null Option), которая определяет допустимость пустых значений поля.
Задание правил валидации
7.1. Задание списка допустимых значений
В соответствии с рассматриваемой предметной областью для поля СТАВКА_НДС таблицы Товар зададим список допустимых значений: 0, 10 и 18 %.
Вызовите контекстное меню таблицы Товар и выберите пункт Columns.
В окне редактора в поле Column выберите колонку, для которой будет задаваться правило - СТАВКА_НДС.
Перейдите на закладку выбранной СУБД - Access.
Щелкните по кнопке, расположенной справа от раскрывающегося списка Valid.
В диалоге Validation Rules щелкните по кнопке New.
В диалоге New Validation Rule в поле Logical введите имя правила - Проверка ставки НДС. Нажмите кнопку ОК.
Перейдите на закладку General. В группе Type установите опцию Valid Value List.
В поле Valid Value в первой строке введите 0. Во вторую и третью строки введите значения: 10 и 18.
Проверьте, чтобы в верхней части окна редактора Validation Rules появилась строчка: Проверка ставки НДС (Validation Name) IN (0, 10, 18) (Validation Rule).
Нажмите ОК. В окне редактора Columns на закладке Access в поле Valid появилось наименование созданного правила - «Проверка ставки НДС».
7.2. Задание значений, присваиваемых по умолчанию
Создадим правило, согласно которому в поле ДАТА_ДОГ таблицы Договор будет по умолчанию подставляться значение текущей даты.
Вызовите контекстное меню таблицы Договор и выберите пункт Columns.
В окне редактора в поле Column выберите колонку, для которой будет задаваться правило - ДАТА_ДОГ.
На закладке Access щелкните по кнопке, расположенной справа от раскрывающегося списка Default.
В диалоговом окне Default/Initial Values щелкните по кнопке New.
В диалоге New Default Value в поле Logical введите имя правила - Текущая дата. Нажмите кнопку ОК.
На закладке Access в поле Server Value - Access Default введите Date() (функцию, получающую значение текущей даты).
Нажмите ОК. В окне редактора Columns на закладке Access в поле Default появилось наименование созданного правила - «Текущая дата».
Установите это же правило для поля ДАТА_ОТГР таблицы Накладная. Для этого в окне редактора колонок Column выделите поле ДАТА_ОТГР и на закладке Access в поле Default из раскрывающегося списка выберите правило Текущая дата.
7.3. Задание правил проверки вводимых значений

Создадим правило проверки вводимых значений для поля ЦЕНА таблицы Товар, согласно которому данное поле не может иметь значения, меньшие 0.

Вызовите контекстное меню таблицы Товар и выберите пункт Columns.

В окне редактора в поле Column выберите колонку, для которой будет задаваться правило - ЦЕНА.

На закладке Access щелкните по кнопке, расположенной справа от раскрывающегося списка Valid.

В диалоге Validation Rules щелкните по кнопке New.

В диалоге New Validation Rule в поле Logical введите имя правила - Проверка цены. Нажмите кнопку ОК.

Перейдите на закладку General. В группе Type установите опцию Min/Max.

В поле Min введите 1. Кроме нижней границы диапазона значений здесь также можно задать и верхнюю границу (Max).

В верхней части окна редактора Validation Rules в списке правил валидации добавилось вновь созданное: Проверка цены >=1.

Нажмите кнопку ОК.

Внесение в диаграмму представлений

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

Выберите в палитре инструментов кнопку представления (View Table), затем щелкните по свободному месту диаграммы.

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

По умолчанию при создании связи Erwin включает в представление все колонки родительских таблиц. Оставьте следующие поля: Покупатель.НАИМ_ПОК, Договор.КОД_ПОК, остальные - удалите, выделив их и нажав кнопку Delete.

Вызовите контекстное меню представления и выберите пункт DatabaseView Properties (редактор представлений).

В окне редактора Views в поле Name введите имя представления.

На закладке Select имеется два списка: в правом отображаются колонки представления, в левом - колонки, доступные для включения в представление.

Помимо наименования (НАИМ) и кода (КОД) покупателя, нам необходимо подсчитать и вывести информацию об общей сумме заключенных им договоров. Для этого создадим выходной столбец с именем СУММА.

Нажмите кнопку New Expression. В диалоговом окне New View Column в поле Name введите имя выходного столбца - СУММА, в поле Expression задайте выражение - Sum(Договор.СУММА_ДОГ). Нажмите кнопку ОК.

Перейдите на закладку Where.

В поле Group By введите имя поля, по которому будет осуществляться группировка, - Договор.КОД_ПОК.

В поле Having задайте условие отбора групп записей, - Sum(Договор.СУММА_ДОГ)>10000.

Нажмите кнопку ОК.

В результате проделанной работы физическая модель будет иметь вид, показанный на рис. 2.1.

Рис. 2.1. Физическая модель данных

Генерация системного каталога базы данных

Прежде чем приступать к генерации физической схемы базы данных создайте новую базу данных в Access.

В программе Erwin выполните команду Tools | Forward Engineer/Schema Generation.

В диалоговом окне Access Schema Generation на закладке Option задайте опции генерации объектов модели, выбирая в левом списке объект, а в правом - соответствующие ему опции.

Щелкните по кнопке Generate.

В диалоговом окне Access Connection установите связь с созданной базой данных, заполнив все предложенные поля.

В поле Database укажите путь к базе данных, в поле System Database необходимо задать путь к системной базе данных, файл которой имеет следующее имя - system.mdw.

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

Лабораторная работа № 3. Расчет размера базы данных

Цель работы:

Освоить методику расчета размера базы данных, реализованную в Erwin.

Задание:

Рассчитать приблизительный размер проектируемой базы данных.

Последовательность выполнения работы

1. Задание параметров вычисления размера БД

Переключитесь на физическую модель БД (Physical).

Выполните команду меню Tools | Volumetrics. В окне Volumetrics задаются параметры, на основе которых вычисляется размер БД.

Выделите в списке Table таблицу, задайте начальное количество строк (Initial), максимальное количество строк (Max) и прирост количества строк в месяц (Grow By). Если параметры Max и Grow By используются одновременно, рост размера таблицы прекращается при достижении максимального размера.

В таблице Column Properties задайте следующие свойства колонок таблицы: ширину поля Avg Width для тех типов данных, для которых это допускается, и средний ожидаемый процент строк Pct Null, в которых текущее поле принимает значение NULL.

В группе Include Indexes укажите индексы, создаваемые для первичных (PK), внешних (FK), альтернативных (AK) ключей или инверсных входов (IE).

В группе Storage для СУБД, которые поддерживают объекты физической памяти, задаются эти объекты.

На закладке Parameters возможно задание дополнительных параметров, используемых для расчета размера БД:

TableFactor показывает накладные расходы на хранение таблицы в БД.

IndexFactor показывает накладные расходы на хранение индекса в БД.

RowOverhead используется для дополнительного перерасчета количества байт каждой строки.

BlobFactor и BlobBlockSize используется для перерасчета Blob-колонок, хранящихся физически вне таблицы.

BytesPerChar используется для задания количества байт, необходимых для хранения одного символа строкового типа. Для ASCII - это 1 байт, для UNICODE - 2 байта.

LogPercent используется для вычисления размеров log-файлов БД.

2. Создание отчета

Для создания результирующего отчета на закладке Report в группе Options выберите тип объектов, по которым проводится расчет.

В группе Time укажите временной интервал (начальное состояние или определенное время после начала эксплуатации).

Нажмите кнопку Send to Data Browser.

В верхней части диалогового окна Data Browser из списка выберите Erwin Volume Reports: Table Calculations.

В правой части окна можно просмотреть содержимое отчета. Поскольку СУБД Access не поддерживает объекты физической памяти, удалим из отчета столбец Physical Objects. Для этого выберите команду Edit | Report Format и в появившемся окне снимите галочку Physical Objects. Нажмите кнопку ОК.

Сохраним отчет в формате HTML. Для этого выберите команду File | Export. В диалоговом окне Export from Data Browser в поле Export Format из списка выберите HTML и нажмите кнопку Export.

Лабораторная работа № 4. Создание отчетов в Erwin

Цель работы:

изучение видов отчетов;

освоение процедуры создания отчетов

Последовательность выполнения работы

Для формирования отчетов в ERwin имеется эффективный и простой в использовании инструмент - Data Browser. Он позволяет выполнять предопределенные отчеты, сохранять результаты их выполнения, создавать собственные отчеты, печатать и экспортировать их в распространенные форматы. Каждый отчет может быть настроен индивидуально, данные в нем могут быть отсортированы и отфильтрованы.

Диалоговое окно Data Browser (см. рис. 4.1) вызывается через пункт главного меню Tools | Data Browser.

Рис. 4.1. Диалоговое окно Data Browser

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

- папка,

- отчет,

- редактируемый отчет,

- результирующий набор данных,

- представление.

Для создания нового отчета выберите пункт меню File | New Erwin Report.

В появившемся диалоговом окне Reports в поле Name введите имя отчета.

В поле Category из списка выберите категорию отчета, т. е. тип объектов, по которым будет создаваться отчет (атрибуты, диаграммы, сущности и т. д.).

На закладке Options в иерархическом списке укажите категории, которые будут включены в отчет.

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

Щелкните по кнопке ОК. Отчет будет добавлен в список отчетов в диалоговое окно Data Browser.

Выполните отчет, нажав кнопку Execute Report на панели инструментов.

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

Для редактирования отчета выделите нужный отчет и выберите в контекстном меню пункт Edit Report Format. В появившемся диалоговом окне Report Format можно изменить порядок сортировки данных (на закладке Sort), очередность колонок (с помощью кнопок Move Up и Move Down), сделать колонку невидимой (снять галочку), а также задать ее стиль (список Option).

Для созданного отчета выберите в контекстном меню пункт Export result set. Результирующий набор данных можно экспортировать в следующие форматы:

CSV - текстовый файл;

HTLM;

DDE - экспорт в MS Word или MS Excel;

RPTwin - экспорт в специализированный генератор отчетов.

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

Задания

Создайте следующие отчеты: отчет по всем сущностям и их атрибутам, отчет по связям. Сохраните полученные отчеты в формате HTML.

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

Размещено на Allbest.ru


Подобные документы

  • Базы данных - важнейшая составная часть информационных систем. Проектирование базы данных на примере предметной области "Оргтехника". Сбор информации о предметной области. Построение информационно-логической модели данных. Разработка логической структуры.

    курсовая работа [318,6 K], добавлен 24.12.2014

  • Описание предметной области разрабатываемой базы данных для теннисного клуба. Обоснование выбора CASE-средства Erwin 8 и MS Access для проектирования базы данных. Построение инфологической модели и логической структуры базы данных, разработка интерфейса.

    курсовая работа [3,8 M], добавлен 02.02.2014

  • Описание предметной области, определение функциональных требований к системе и построение диаграммы потока данных. Построение модели "сущность-связь", описание сущностей и атрибутов модели. Построение реляционной базы данных и описание ее таблицы.

    курсовая работа [624,5 K], добавлен 30.05.2019

  • Построение инфологической концептуальной модели предметной области. Структура базы данных Microsoft Office Access. Формы, запросы и отчеты. Создание форм, запросов и отчетов в базах данных. Схема данных физической и логической сущности в Erwin 4.0.

    курсовая работа [5,1 M], добавлен 13.12.2011

  • Проектирование модели базы данных с помощью Erwin: выделение сущностей предметной области и их атрибутов. Разработка SQL-скрипта, предназначенного для генерации базы данных в формате MS SQL Server 2005. Создание процедур и написание проверочных кодов.

    контрольная работа [1,1 M], добавлен 31.03.2012

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

    курсовая работа [2,6 M], добавлен 20.11.2013

  • Построение инфологической (концептуальной) модели предметной области. Проектирование логической и физической структуры базы данных. Реализация проекта в среде конкретной СУБД. Организация корректировки и ввода данных в БД. Разработка интерфейса.

    курсовая работа [1,4 M], добавлен 14.01.2018

  • Построение инфологической, логической и физической модели предметной области. Ограничения целостности базы данных. Организация ввода и корректировки данных. Описание информационных потребностей пользователей. Реализация запросов, построение отчетов.

    курсовая работа [2,9 M], добавлен 22.01.2015

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

    курсовая работа [1,5 M], добавлен 31.03.2015

  • Ограничения, присутствующие в предметной области. Проектирование инфологической модели данных. Описание основных сущностей и их атрибутов. Логический и физический уровни модели данных. Реализация базы данных: представления, триггеры, хранимые процедуры.

    курсовая работа [1,7 M], добавлен 10.02.2013

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.