WWW.DISSERS.RU

БЕСПЛАТНАЯ ЭЛЕКТРОННАЯ БИБЛИОТЕКА

   Добро пожаловать!


Pages:     | 1 | 2 || 4 | 5 |   ...   | 14 |

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

Рис. 10. Диалоговое окно редактора словаря доменов Для создания доменов служит диалог Domain Dictionary Editor. Его можно вызвать из меню «Edit\Domain Dictionary...». В ответ на экране появ- ляется диалоговое окно (см. рис. 10), которое позволяет создавать и редактиро- вать домены в двух режимах - логическом и физическом. Переключение режи- ма производится при помощи списка с меткой «Edit Mode».

-20- Табл. 6. Сущности предметной области и их атрибуты -21- Внизу находится список доменов, содержащий пять базовых доменов, на основе которых разработчик может определить собственные домены:

•- String (СТРОКОВЫЙ);

• Number (числовой);

•- DateTime (время);

•- Blob (двоичный).

В нижней части слева находятся кнопки:

•- New - создание нового домена;

•- Rename - переименование домена;

•- Delete - удаление домена;

•- Reset-сброс свойств домена.

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

На странице General редактируются ненаследуемые и наследуемые свой- ства. Ненаследуемые свойства относятся только к домену и не передаются ат- рибутам, определенным на базе этого домена. К ним относятся родительский домен (Domain parent) и иконка домена (Domain icon). Наследуемые свой- ства передаются всем атрибутам, созданным на базе домена. К этим свойствам относятся наследуемое имя и иконка. В качестве наследуемого имени по умолчанию устанавливается % AttDomain макроопределение, которое заменяется на имя домена.

Это означает, что при создании атрибута на базе данного домена его логическим именем будет имя домена.

Кроме того, при помощи флажков, находящихся в нижней части страницы General, вы можете задать:

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

•- Logical - домен должен быть виден только в логической модели. Страницы Definition, Note, UDP не отличаются отаналогичных страниц, описанных для других объектов диаграммы.

Для создания нового домена в диалоге Domain Dictionary Editor нажми- те на кнопку New и в появившемся диалоговом окне (рис. 11):

•- выберите родительский домен Number из списка Domain Parent;

•- наберите имя домена «код класса» в поле «Logical Name»;

•- в поле «Physical Name» введите физическое имя домена «t_student_id».

Физическое имя станет именем типа данных в таблице БД.

По умолчанию ERwin генерирует физическое имя из логического, заменяя пробелы символом подчеркивания «_». В нашем случае он создал имя «код студента», но так как сервера не поддерживают имен, содержащих символы ки- риллицы, мы заменили его на английское имя «t_student_id». Префикс «t_» означает, что это имя типа данных (домена). Нажмите кнопку OK и новый домен будет добавлен в список.

- генерируемых в запросах CREATE TABLE будут использованы домены. Если этот флажок не установлен, то программа вместо доменов проставит базовые типы данных.

В поле «Name inherited By Column» вводится макропрограммирование, генерирующее имя колонки, которая создается на базе этого домена. ERwin содержит встроенную систему макроопределений, с помощью которых можно существенно изменить и настроить поведение программы в различных ситуациях. В данном случае используется макрос %ColDomain, возвращающий физическое имя домена, т.е. программа будет генерировать имя колонки, совпадающее с именем домена. Но в нашем случае желательно несколько видоизменить это название, так как имя домена начинается с префикса «t_», и мы не хотим, чтобы этот префикс попал в имя колонки. Для этого воспользуемся макросом %Substr (), синтаксис которого имеет вид %Substr(<строка>, <начальная позиция>,<длина>).

Введите в поле наследуемого имени макроса %Substr (%ColDomain, 3, 50), согласно которому имя колонки будет генерироваться равным имени домена, но начиная с третьего символа. Число 50 обозначает длину символа.

Рис.13. Страница «InterBase» Следующая страница зависит от заданного типа сервера, для которого бу- дет генерироваться БД. В нашем случае выбран сервер InterBase (см. рис. 13).

Для выбранного в списке домена здесь выбираются:

• InterBase Datatype - физический тип данных, определенный для сервера InterBase. В этом же поле проставляется размерность;

• Null Option позволяет задать домены, у которых должно быть предопре- делено СВОЙСТВО NOT NULL ИЛИ NULL;

24- Табл. 7. Домены, используемые в разрабатываемой БД ЛОГИЧЕСКОЕ ИМЯ ДОМЕНА ИМЯ ДОМЕНА ТИП ДОМЕНА Номер группы t_group_id Number Номер студента t_student_id String Фамилия И.О. t_last_f_m_name String Год рождения t_god_rozhd Date Адрес t_address String Количество студентов t_kolich_student Number Балл t_ball Number Код предмета t_predmet_id Number Название предмета t_predmet_name String Количество часов t_chasov Number Число семестров t_chislo_semestrov Number Программа курса t_progr_cours String Таб. номер t_tab_nomer Number Уч. степень t_uch_stepen String Уч. звание t_uch_zvanie String Код кафедры t_kafedra_id Number Название кафедры t_kafedra_name String i Телефон t_telephone String Вид занятия t_vid_zaniatya String Оценка t_ocenka Number • Поля со списком задают правила валидации (проверки допустимого значе- ния);

• Страница Comment. Внесение комментария к атрибуту;

• Страница UDP. Свойства, определяемые пользователем;

Таким же образом создайте остальные домены, имена и базовые типы которых приведены в табл. 7.

2.1.3. УСТАНОВКА АТРИБУТОВ СУЩНОСТИ Теперь у нас есть все необходимые домены для задания сущностей на диаграмме. Определим сначала сущность «СТУДЕНТ». Для этого в палитре инструментов выберите кнопку «стрелка», выделите сущность «СТУДЕНТ», щелкнув по нему указателем мыши, а затем вызовите «Edit\Attribute...». Этот же результат можно получить, выбрав пункт «Attribute Editor...» контекстного меню.

При этом на экране появится окно редактора атрибутов (рис. 14).

Структура редактора атрибутов аналогична структуре редактора сущностей.

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

Для ввода нового атрибута нажмите «NEW» и выберите в списке доменов домен «код класса» (рис. 15). Макроопределения, которые мы задали для на- следуемых имен домена (%AttDomain и %Substr (%ColDomain, 3,50) ), генери- руют в поле «Attribute Name» имя атрибута «код класса», а в поле «Column Name» —«class id».

Рис. 14. Редактор атрибутов После нажатия кнопки ОК атрибут появится в окне редактора. Таким же образом введите остальные атрибуты сущности «Класс». Затем выделите атрибут «код класса» и установите флажок «Primary Key».

Так мы назначаем атрибут «код класса» первичным ключом сущности «Класс». Порядок следования атрибутов можно менять при помощи кнопок со стрелками (рис. 14).

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

Аналогично определим атрибуты остальных сущностей на диаграмме.

Сущности можно определять и другим способом, а именно с помощью специ- ального инструмента «Independent Attribute Browser», который вызыва- ется или нажатием CTRL+B, ИЛИ Window\Independent Attribute Browser.

-26- Рис. 15. Создание Рис. 16. Окно браузера атрибута атрибутов Вызовите браузер на экран (см. рис. 16). Преимущество браузера заключается в том, что он позволяет задавать атрибуты сущности простым перетаскиванием.

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

Рис. 17. Сущности объектной области «Учебный процесс» - 27- После определения всех сущностей нашей предметной облас ти диаграмма будет иметь вид, показанный на рис. 17. На данной диаграмме отсутс твуют не- которые ключевые поля, отраженные на информационно-логической модели и логической структуре БД «Учебный процесс». Эти поля участвуют в создании связей между сущностями и будут введены автоматически после установления связей.

2.1.4. УСТАНОВКА СВЯЗЕЙ МЕЖДУ СУЩНОСТЯМИ После того как определены все сущности, необходимо задать связи между ними. Связь в ERwin трактуется как функциональная зависимость между двумя сущностями. Если рассматривать диаграмму как графическое изображение предметной области, то сущности являются существительными, а связи - гла- голами. Например, между сущностями «ГРУППА» и «СТУДЕНТ» имеет мес то связь «состоит из» (см. рис. 18).

В ERwin связи представлены пятью основными эле- ментами информации:

•- Тип связи. ERwin поддерживает следующие основ- ные типы связей:

• идентифицирующая, если экземпляр дочерней сущности идентифицируется через связь с ее родитель- ской сущностью. Атрибуты, составляющие первичный ключ родительской сущности, входят в первичный ключ дочерней сущности. Идентифицирующая связь изобра- жается сплошной линией; Рис. 18.

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

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

> многие-ко-многим - ситуация, когда одной сущности соответс твует один или несколько экземпляров второй сущности, а экземпляру второй -28- сущности соответствует один или несколько экземпляров первой сущности, отражается логической моделью «многие-ко-многим» между данными сущностями. Связь данного типа возможна только на логическом уровне. На физическом уровне связь этого типа заменяется сущностью.

• Родительская и дочерняя (зависимая) сущности. Дочерняя сущность при идентифицирующей связи всегда является зависимой.

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

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

• Требования по обеспечению ссылочной целостности. Под ссылочной целостностью понимается обеспечение требования, чтобы значения внешнего ключа экземпляра дочерней сущности соответствовали значениям первичного ключа родительской сущности. Для каждой связи могут быть заданы требования по обработке операций INSERT/UPDATE/DELETE для родительской и дочерней сущности. ERwin предоставляет следующие варианты обработки этих событий:

> отсутствие проверки (NONE);

> проверка допустимости (SET NULL);

> запрет операции (RESTRICT);

> каскадное выполнение операции DELETE/UPDATE (CASCADE);

> установка пустого (NULL-значения) или заданного значения по умолчанию (SET DEFAULT).

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

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

Вернитесь на вкладку «Уровень сущностей». Мы задали для студента собст- венный уникальный ключ «Номер студента». Следовательно, сущность «СТУ- ДЕНТ» является независимой сущностью и связана с сущностью «ГРУППА» не- идентифицирующей связью. Для того чтобы проставить эту связь на диаграм- ме, щелкните указателем мыши по кнопке «Nonldentifying Relationship» в палитре инструментов, затем щелкните по очереди по прямоугольникам сущ- ностей «ГРУППА» и «СТУДЕНТ» на диаграмме. Между этими сущностями появится пунктирная линия неидентифицирующей связи. Посреди линии связи проставляется генерируемая по умолчанию глагольная фраза - «R/1» (см. рис. 18).

-29- Перейдя на уровень атри- бутов, вы можете обнаружить, что у сущности «СТУДЕНТ» до- бавился атрибут первичного ключа от сущности «ГРУППА» и помечен буквами «FK» (см.

рис. 19). Для идентифицирую- щей связи внешний ключ все- гда входит в первичный ключ дочерней сущности, для не- идентифицирующей - не вхо- дит.

Связи на диаграмме лучше Рис. 19. Миграция атрибутов воспринимаются, если им при- сваиваются глагольные фразы. Это можно сделать с помощью редактора свя- зей. Для его вызова щелкните по связи указателем мыши, затем нажмите пра- вую кнопку мыши и в контекстном меню выберите «Relationship Editor...» (рис. 20). Редактор связей похож на остальные редакторы объектов ER- диаграммы. В верхней части находится выпадающий список с названием связи.

В нашем случае осмысленная фраза еще не определена, поэтому в этом поле значится «Группа R/1 Студент».

С помощью кнопок New... и Delete можно добавить новую связь или уда- лить существующую.

Рис. 20. Окно редактора связей -30- В редакторе имеется четыре страницы:

• General - на этой странице задаются основные свойства связи - глагольная фраза, тип и степень связи.

> Verb Phrase содержит два поля, в которых вводится глагольная фраза, характеризующая связь. Можно задать фразу для прямого (Parent-To-Child) и обратного (Child-To-Parent) направления связи. Щелкните указателем мыши по полю Parent-To-Child и введите «состоит из».

> Cardinality позволяет выбрать одну из следующих степеней связи:

- «Zero One or More» — каждый экземпляр родительской сущности связан с нулем, одним или более экземпляров дочерней сущности;

- «One or More (P)» - каждый экземпляр родительской сущности связан с одним или более экземпляров дочерней сущности;

- «Zero or One (z)» — каждый экземпляр родительской сущности связан с нулем или одним экземпляром дочерней сущности;

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

Рис. 21. Страница «Имя роли/Установки ссылочной целостности» -31- > Relationship Type - связь может быть идентифицирующей и неиден- тифицирующей. Кроме того, для неидентифицирующей связь может быть либо обязательной, либо необязательной. Например, при анализе предметной облас- ти мы выяснили, что учебное место не может существовать отдельно от класса.

Поэтому установите переключатель Nulls в позицию «No nulls». Тем самым на отношение накладывается условие, что у существующего экземпляра учеб- ного места всегда должна быть ссылка на класс, в который оно входит.

• Definition - на этой странице вводится определение связи.

Pages:     | 1 | 2 || 4 | 5 |   ...   | 14 |






















© 2011 www.dissers.ru - «Бесплатная электронная библиотека»

Материалы этого сайта размещены для ознакомления, все права принадлежат их авторам.
Если Вы не согласны с тем, что Ваш материал размещён на этом сайте, пожалуйста, напишите нам, мы в течении 1-2 рабочих дней удалим его.