Главная страница
Навигация по странице:

  • Задачи работы

  • 2.3 Лабораторная работа №3. Определение связей между сущностями и их атрибутами Цель работы

  • Пример выполнения лабораторной работы

  • 2.4 Лабораторная работа №4. Генерация схемы базы данных

  • программа. 1 ПРОГРАММА ERWIN. 1 программа erwin


    Скачать 0.52 Mb.
    Название1 программа erwin
    Анкорпрограмма
    Дата02.11.2020
    Размер0.52 Mb.
    Формат файлаdocx
    Имя файла1 ПРОГРАММА ERWIN.docx
    ТипПрограмма
    #147404
    страница3 из 4
    1   2   3   4

    2.2 Лабораторная работа №2. Внесение атрибутов сущностей

    объектной области в схему и задание их на диаграмме
    Цель работы: создание атрибутов сущностей предметной области.

    Задачи работы: освоить приемы создания необходимых атрибутов сущности.

    Содержание работы:

    1. выделение атрибутов сущностей;

    2. создание доменов;

    3. создание атрибутов сущностей.


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

    Перечень сущностей, их атрибутов с характеристиками приведены в таблице 3.
    Таблица 3 – Сущности, входящие в объектную область «материальное обеспечение процесса обучения»

    Сущность

    Атрибут

    Тип

    Класс – Class

    Код класса (ключ)

    Адрес

    Номер корпуса

    Номер аудитории

    Телефон

    Примечание

    Число

    Строка

    Строка

    Строка

    Строка

    Строка

    Учебное место – Workplace

    Код учебного места (ключ)

    Номер учебного места

    Имя рабочей станции

    IP-адрес

    Примечание

    Число

    Строка

    Строка

    Строка

    Строка

    Тип оборудования – Type_equipment

    Код типа оборудования (ключ)

    Наименование типа

    Число
    Строка

    Единица оборудования – Equipment

    Код единицы оборудования (ключ)

    Инвентарный номер

    Техническая характеристика

    Признак исправности

    Дата установки

    Примечание

    Число
    Строка

    Строка

    Число

    Дата

    Строка


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

    Для создания доменов выберите пункт меню «Model/Domain
    Dictionary». Диалоговое окно «Domain Dictionary» (редактор словаря доменов), изображенное на рисунке 2.6, позволяет создавать и редактировать домены в двух режимах – логическом и физическом («Edit Mode» – режим редактирования).

    Ниже режима редактирования находится переключатель, позволяющий установить порядок сортировки доменов в списке – алфавитный или иерархический. Еще ниже находится собственно список доменов. По умолчанию он содержит пять базовых доменов, на основе которых разработчик может определить собственные домены. Базовые домены представляют основные типы данных, используемые в СУБД: строковый (String), числовой (Number), временной (Datetime), двоичный (Blob), а также домен общего характера с неопределенным типом данных – «неизвестный» (Unknown). Последний является родителем всех остальных доменов, в чем легко убедиться, переключив вид сортировки с алфавитного на иерархический.

    В нижней части слева находятся кнопки: создание нового домена (New), переименование домена (Rename), удаление домена (Delete) и сброс свойств домена (Reset).

    Рисунок 2.6 – Диалоговое окно редактора словаря доменов
    В правой части расположены страницы с закладками, позволяющими редактировать свойства домена. Набор страниц зависит от режима редактирования. В логическом режиме четыре страницы – «General» (общие свойства), «Datatype» (данные по типу), «Definition» (определение), «Note» (примечание) и «UDP» (пользовательские свойства).

    Страница «General» позволяет редактировать свойства двух типов – ненаследуемые и наследуемые. Ненаследуемые свойства относятся только к домену и не передаются атрибутам, определяемым на базе этого домена. Ненаследуемые свойства относятся только к домену и не передаются атрибутам, определяемым на базе этого домена (родительский домен – «Domain parent»  и иконка домена – «Domain Icon»). Напротив, наследуемые свойства передаются всем атрибутам, созданным на базе домена. В качестве наследуемого имени по умолчанию устанавливается %AttDomain – макроопределение, которое заменяется на имя домена. Это означает, что при создании атрибута на базе данного домена его логическим именем будет имя домена. Флажок «Logical Only» указывает на то, что домен должен быть виден только в логической модели.

    Кроме того, на вкладке «Datatype» с помощью флажка «Required «можно установить, что атрибут, созданный на базе данного домена, является обязательным, то есть должен всегда содержать данные.
    В физической модели это соответствует заданию для поля опции
    «Interbase/Not Null».

    Создадим домен для атрибута «Код класса». Для этого необходимо нажать на кнопку «New» и в появившемся диалоговом окне ввести: в поле «Logical Name» – «код класса – code class», в поле «Physical Name» – «t_class_id», в списке базовых доменов выберите числовой домен (рисунок 2.7). Нажмите кнопку «OK», и новый домен будет добавлен в список (рисунок 2.8).

    Рисунок 2.7 – Окно создания домена


    Рисунок 2.8 – Созданный новый домен
    Измените режим редактирования с логического на физический. Теперь в списке слева фигурируют физические имена доменов, а состав содержания страниц свойств изменился. В частности, на странице «General» теперь находятся:

    1. поле со списком «Domain Parent» (родительский домен) – то же самое, что и в логическом режиме;

    2. флажок «Domain». Если этот флажок установлен, то при генерации физической схемы базы данных в запросе «Create Table» будут использованы домены;

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


    Введите в поле исследуемого имени %Substr(%ColDomain,3,50) (рисунок 2.9).

    Рисунок 2.9 – Окно редактора словаря доменов

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

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

    • тип данных («FoxPro Datatype») – физический тип данных, определенный для выбранного сервера, в данном случае для сервера FoxPro. В этом же поле проставляется и размерность, если это необходимо;

    • флажок «Null Option» позволяет задать домены, у которых должно быть предопределено свойство «Not Null» или «Null»;

    Далее задается средняя ширина поля и процент записей, имеющих в этом поле «Null» (эти данные используются при оценке объемов таблиц и базы данных в целом).

    Два поля со списком задают правило валидации (проверки допустимости значения) и значение по умолчанию. Оставьте содержимое этой страницы без изменений.

    Точно так же создаются остальные домены, имена и базовые типы которых приведены в таблице 4.
    Таблица 4 – Домены, используемые в объектной области
    «материальное обеспечение процесса обучения»

    Логическое имя домена

    Физическое имя домена

    Родительский
    домен

    Код класса

    Адрес

    Номер корпуса

    Номер аудитории

    Телефон

    t_class_id

    t_address

    t_corpus_no

    t_audit_no

    t_telephone

    number

    string

    string

    string

    string

    Примечание

    Код учебного места

    Номер учебного места

    Имя рабочей станции

    IP-адрес

    Код типа оборудования

    Наименование типа

    Код единицы борудования

    Инвентарный номер

    Техническая характеристика

    Признак исправности

    Признак раздела

    Дата установки

    t_note

    t_workplace_id

    t_workplace_no

    t_workplace_name

    t_ip_address

    t_equip_type_id

    t_equip_name

    t_equip_id

    t_inventory_no

    t_character

    t_malfunct

    t_is_section

    t_install_date

    string

    number

    string

    string

    string

    number

    string

    number

    string

    string

    number

    number

    datetime


    Подготовив домены, переходим к заданию атрибутов сущностей на диаграмме. Для этого выделяем сущность «Class», щелкнув по ней указателем мыши (в палитре инструментов должна быть выбрана «стрелка»), а затем вызываем пункт меню «Model Attributes…». То же самое можно выполнить, выбрав пункт «Attributes» контекстного меню. При этом на экране появится окно редактора атрибутов. Принцип его построения аналогичен редактору сущностей.

    В верхней части диалогового окна (рисунок 2.10) находится выпадающий список, в котором можно выбрать сущность для редактирования. Рядом имеется кнопка, вызывающая редактор сущностей. Основная область окна редактора делится на две части – список атрибутов и страницы свойств. Для ввода нового атрибута необходимо нажать кнопку «New».

    Выберите в списке доменов домен «Код класса». В поле «Attribute Name» появится имя атрибута «Код класса», а в поле «Column Name»  «class_id». Эти имена генерируются макроопределениями, которые вы задали для наследуемых имен домена  %AttDomain и %Substr(%ColDomain,3,50). После нажатия кнопки «OK» атрибут появится в окне редактора.

    Точно так же вводятся остальные атрибуты сущности «Class». После этого выделите атрибут «Код класса» и установите флажок «Primary Key», так как «Код класса» является первичным ключом сущности «Class». Напротив этого атрибута в списке слева появится символ ключа. Порядок следования атрибутов в списке можно изменять при помощи кнопок со стрелками, находящимися над окном списка. Нажмите кнопку «OK».

    Рисунок 2.10 – Атрибуты сущности «Class»
    Как вы помните, мы создали ранее два хранимых экрана –
    «Уровень сущностей» и «Уровень атрибутов». Перейдите на вкладку «Уровень атрибутов».

    Сущности изображаются здесь также в виде прямоугольников, однако имя сущности пишется над прямоугольником, а внутри него дается список атрибутов. Прямоугольник сущности делится на две части, в верхней из которых приводятся атрибуты первичного ключа, а в нижней – все остальные (рисунок 2.11). На этих экранах необходимо определить атрибуты оставшихся сущностей объектной области «материальное обеспечение процесса обучения».


    Рисунок 2.11 – Уровень атрибутов
    2.3 Лабораторная работа №3. Определение связей между

    сущностями и их атрибутами
    Цель работы: создание и определение связей сущностей.

    Задачи работы: освоить приемы построения связей сущностей.

    Содержание работы:

    1. создание связей;

    2. установка требуемых атрибутов связи.


    Пример выполнения лабораторной работы

    Рисунок 10 – Сущности области «материальное обеспечение».

    Различают зависимые и независимые сущности. Мы задали для учебного места собственный уникальный ключ «Код учебного места». Таким образом, сущность «Учебное место» является независимой сущностью и связана с сущностью «Класс» неидентифицирующей связью. Для того чтобы поставить эту связь на диаграмме, необходимо щелкнуть указателем мыши по кнопке «Non-Identifying Relationship» в палитре инструментов, затем щелкнуть последовательно по прямоугольникам сущностей «Класс» (Class) и «Учебное место» (Workplace) на диаграмме. Между этими сущностями появится пунктирная линия неидентифицирующей связи. Перейдите на вкладку «Уровень атрибутов». Посреди линии связи проставляется генерируемая по умолчанию глагольная фраза – «R/I» (рисунок 2.12). У сущности «Учебное место» добавился атрибут первичного ключа от сущности «Класс», и помечен он буквами «FK». Говорят, что атрибут «мигрировал», а «FK» (foreign key) означает, что атрибут является частью внешнего ключа. Для идентифицирующей связи внешний ключ всегда входит в первичный ключ дочерней сущности, для неидентифицирующей – не входит.

    Вернемся на вкладку «Уровень сущностей». Теперь диаграмма содержит четыре сущности. Определим связи между ними.


    Рисунок 2.12 – Миграция сущностей
    Для того чтобы назначить глагольную фразу, необходимо выделить связь, затем нажать правую кнопку мыши и в контекстном меню выбрать пункт «Relationship Properties» (рисунок 2.13).

    Рисунок 2.13 – Окно редактора связей
    В редакторе имеется четыре страницы с закладками:

    1. «General»  закладка, имеющая настройки:

    а) «Verb Phrase» (глагольная фраза) содержит два поля, в первом вводится глагольная фраза, характеризующая связь «родительская –дочерняя сущность» (прямое направление), а вторая – «дочерняя –родительская сущность» (обратное направление). Если для связи заданы и прямая, и обратная глагольные фразы, то на диаграмме они изображаются через символ «/». Введите с клавиатуры для прямой связи фразу «consist of» (состоит из);

    б) «Cardinality» задает степень связи: One or More (один или более) – каждый экземпляр родительской сущности связан с одним или более экземплярами дочерней сущности; Zero, One or More (ноль, один или более); Zero or One (ноль или один); Exactly (точно) – каждый экземпляр родительской сущности связан с заданным количеством экземпляров дочерней сущности (рядом находится поле, где необходимо ввести количество);

    в) «Relationship Type». Связь может быть идентифицирующей и неидентифицирующей. Кроме того, для последней задается обязательность (Nulls), которая показывает, может ли атрибут внешнего ключа принимать значение «Null» в таблице БД. В нашем примере учебное место не может существовать отдельно от класса, поэтому установите этот переключатель в позицию «No Nulls»;

    2) «Definition» (определение). Вводится текст определения, который должен облегчать восприятие модели;

    3) «Rolename» (имя роли). Это дополнительная характеристика, которая может присваиваться мигрирующему атрибуту первичного ключа. То есть, если задать имя роли мигрирующему атрибуту, то в дочерней сущности он будет отражаться под этим именем. Режим показа ролей переключается в контекстном меню диаграммы «Entity Display/Rolename/Attribute». В зависимости от его установки мигрированный атрибут может быть представлен именем роли или полным именем, состоящем из имени роли и имени атрибута, разделенными точкой;

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

    а) Restrict – запрет удаления, вставки или изменения экземпляра сущности;

    б) Cascade – при удалении экземпляра родительской сущности происходит удаление всех экземпляров дочерней сущности, ссылающихся на удаляемый родительский экземпляр;

    в) Set Null. При удалении родительской сущности атрибутам внешнего ключа всех экземпляров дочерней сущности, присваивается значение Null;

    г) Set Default. То же самое, что и в предыдущем случае, только вместо значения Null присваивается значение по умолчанию;

    д) None. Никаких действий не предпринимается.

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

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

    Очевидно, связь того же типа должна существовать между сущностями «Тип оборудования» (Type_Equipment) и «Единица оборудования» (Equipment), так как единица оборудования обязательно должна иметь тип. После внесения ее в диаграмму вызовите редактор связей и измените глагольную фразу на «description» (описывает).

    Рассмотрим теперь связь между сущностями «Учебное место» (Workplace) и «Единица оборудования» (Equipment). Единицы оборудования образуют некий фонд комплектующих, часть из которых установлена в учебные места. Другая часть комплектующих может находиться на складе, быть неисправной, то есть существовать отдельно от учебного места. Таким образом, эти две сущности не зависят друг от друга и должны быть ассоциированы неидентифицирующей связью: учебное место – единица оборудования. В редакторе связи измените глагольную фразу на «состоит из». Неидентифицирующая связь имеет две разновидности: допускающая значения Null и недопускающая. По умолчанию выбирается первая разновидность, которая означает, что у экземпляра сущности «Единица оборудования» поля внешнего ключа могут иметь нулевые значения, то есть отсутствовать указание на экземпляр «Учебное место». Таким образом, единица оборудования может существовать сама по себе. Оставьте установки без изменений.

    В зависимости от типа, связи изображаются на диаграмме по-разному.

    Помимо типа связи, на диаграмме могут отображаться и установки ссылочной целостности. Для этого необходимо выбрать в контекстном меню «Relationship Display/Referential Integrity». Обозначение ссылочной целостности на схеме представляет собой две алфавитные группы, разделенные символом двоеточия. Первый символ обозначает действие, к которому относится правило целостности: D – удаление,
    I – вставка, U – изменение. Вторая группа обозначает правило: R – restrict, C – cascade, SN – set null, SD – set default. Таким образом, например, запрет удаления обозначается D:R, а установка Null при изменении – U:SN.

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

    Рисунок 2.14 – ER-диаграмма с включенными установками

    ссылочной целостности


    2.4 Лабораторная работа №4. Генерация схемы базы данных
    1   2   3   4


    написать администратору сайта