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

  • потенциальными ключами (candidate key).

  • Альтернативный ключ (Alternative Key)

  • Внешние ключи (Foreign Key)

  • Comment.

  • 3.2 Создание физической модели в ERwin

  • Target Server

  • Globally Reset DBMS Property

  • Migrate Column Property

  • View Editor

  • Validation Rule Editor

  • CustomerName

  • Index Editor

  • Schema Generation

  • Лабораторные работы. ЛАБОРАТОРНЫЕ ЗАНЯТИЯ. Лабораторная работа 1


    Скачать 1.87 Mb.
    НазваниеЛабораторная работа 1
    АнкорЛабораторные работы
    Дата17.08.2020
    Размер1.87 Mb.
    Формат файлаdocx
    Имя файлаЛАБОРАТОРНЫЕ ЗАНЯТИЯ.docx
    ТипЛабораторная работа
    #135711
    страница5 из 11
    1   2   3   4   5   6   7   8   9   10   11

    Первичный ключ (primary key) - это атрибут или группа атрибутов, однозначно идентифицирующие экземпляр сущности. Атрибуты первичного ключа на диаграмме не требуют специального обозначения - это те атрибуты, которые находятся в списке атрибутов выше горизонтальной линии. При внесении нового атрибута в диалоге Attribute Editor для того, чтобы сделать его атрибутом первичного ключа, нужно включить флажок Primary Key в нижней части закладки General. На диаграмме ключевой атрибут можно внести в состав первичного ключа, воспользовавшись режимом переноса атрибутов (кнопка   в палитре инструментов).

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

    Ключи могут быть сложными, т.е. содержащими несколько атрибутов. Сложные первичные ключи не требуют специального обозначения - это список атрибутов выше горизонтальной линии. При выборе первичного ключа предпочтение должно отдаваться более простым ключам, т.е. ключам, содержащим меньшее количество атрибутов.
    Многие сущности имеют только один потенциальный ключ. Такой ключ становится первичным. Некоторые сущности могут иметь более одного возможного ключа. Тогда один из них становится первичным, а остальные - альтернативными ключами.
    Альтернативный ключ (Alternative Key) - это потенциальный ключ, не ставший первичным. 
    Каждому ключу соответствует индекс, имя которого также присваивается автоматически. Имена ключа и индекса при желании можно изменить вручную.


    На диаграмме атрибуты альтернативных ключей обозначаются как (Akn.m.), где n - порядковый номер ключа, m - порядковый номер атрибута в ключе. Когда альтернативный ключ содержит несколько атрибутов, (Akn.m.) ставится после каждого.



    Рис.11. Сущность "Сотрудник" с отображением ключей

    Внешние ключи (Foreign Key) создаются автоматически, когда связь соединяет сущности: связи образуют ссылку на атрибуты первичного ключа в дочерней сущности и эти атрибуты образуют внешний ключ в дочерней сущности (миграция ключа). Атрибуты внешнего ключа обозначаются символом (FK) после своего имени (рис.11). Атрибуты внешнего ключа Где работает.Номер отдела ("Где работает" - имя роли) сущности Сотрудник является атрибутом первичного ключа (PK) в сущности Отдел.

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

    Есть случаи, когда унификация нежелательна. Например, когда два атрибута имеют одинаковые имена, но на самом деле они отличаются по смыслу, и необходимо, что бы это отличие отражалось в диаграмме. В этом случае необходимо использовать имена ролей внешнего ключа (рис.9).

    Домены.

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

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

    На логическом уровне домены можно описать без конкретных физических свойств. На физическом уровне они получают специфические свойства, которые можно изменить вручную. Так, домен "Возраст" может иметь на логическом уровне тип Number, на физическом уровне домену будет присвоен тип INTEGER.

    Для создания домена в логической модели служит диалог Domain Dictionary Editor. Его можно вызвать из меню Edit/Domain Dictionary по кнопке, расположенной в верхней левой части закладки General диалога Attribute Editor. Для создания нового домена в диалоге Domain Dictionary Editor следует:

    • щелкнуть по кнопке New. Появляется диалог New Domain;

    • выбрать родительский домен из списка Domain Parent. Новый домен можно создать на основе уже созданного пользователем домена, либо на основе изначально существующего. По умолчанию Erwin имеет четыре предопределенных доменов (String, Number, Blob, Datetime). Новый домен наследует все свойства родительского домена. Эти свойства в дальнейшем можно переопределить;

    • набрать имя домена в поле Logical Name. Можно также указать имя домена на физическом уровне в поле Physical Name. Если физическое имя не указано, по умолчанию оно принимает значение логического имени;

    • щелкнуть по кнопке OK;

    В диалоге Domain Dictionary Editor можно связать домен с иконкой, с которой он будет отображаться в списке доменов (Domain Icon), иконкой, с которой атрибут, определенный на домене будет отображаться в модели (Icon Inherited by Attribute).
    Каждый домен может быть описан в закладке Definition, снабжен комментарием в закладке Note или свойством определенным пользователем в закладке UDP.
    ERwin имеет специальный инструмент, который значительно облегчает создание новых атрибутов в модели, используя описание доменов, - Independent Attribute Browser. Этот диалог вызывается (и скрывается) по горячему ключу CTRL+B. С его помощью можно выбрать в списке домен и по методу drag&drop перенести его в какую-либо сущность. В ней будет создан новый атрибут с именем, которое следует задать в окне Name Inherited by Attribute диалога Domain Dictionary Editor. Если значение поля не задано, по умолчанию принимается имя домена.


    На физическом уровне диалог Domain Dictionary Editor позволяет редактировать физические свойства домена. Имя этой закладки зависит от выбранного сервера БД. На ней можно задать конкретный тип данных, соответствующих домену, правила присвоения NULL - значений, правила валидации (правила проверки допустимых значений) и задания значения по умолчанию. Правила валидации и значения по умолчанию должны быть предварительно описаны и именованы. Для вызова диалогов редактирования правил валидации и значений по умолчанию служат кнопки   справа от соответствующего списка выбора (Valid и Default).

    Функции других закладок диалога Domain Dictionary Editor:
    General. Задание родительского домена (Domain Parent) и имени, присваиваемого колонке при ее создании с помощью Independent Column Browser. С помощью опции Phisical Only домен можно определить только на уровне физической модели. 

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

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

    Visual Basic - PowerBuilder. Задание специальных свойств домена для кодогенерации клиентского приложения.

    Задание.

    На основе ранее созданной функциональной модели и описания заданного отдела создать логическую модель с использованием пакета ERwin.

    Вопросы.

    1. Каково назначение пакета ERwin и его основные функции?

    2. В чем состоят главные преимущества пакета ERwin?

    3. Опишите этапы построения информационной модели.

    4. Из каких элементов состоит диаграмма "сущность-связь"?

    5. Опишите характеристики связей в методологии IDEF1X.

    6. Какие типы ключей используются в пакете ERwin, каково их назначение?

    7. Каково предназначение доменов, приведите примеры доменов различного вида.


    3.2 Создание физической модели в ERwin

    Сервер

    Физический уровень представления модели зависит от выбранного сер-вера. Для выбора СУБД служит редактор Target Server (меню Server/Target Server... доступно только на физическом уровне).

    ERwin поддерживает практически все распространенные СУБД, всего более 20 реляционных и нереляционных БД. Диалог Target Server позволяет задать тип данных и опцию NULL для новых колонок, а также правила ссылочной целостности, принимаемые по умолчанию. Группа кнопок Default Non-Key Null Option позволяет разрешить или запретить значения NULL для неключевых колонок по умолчанию ERwin генерирует имена таблиц и индексов по шаблону на основе имен соответствующих сущностей и ключей логической модели. Окна Table Name Macro и Index Name Macro позволяют изменить шаблон генерации имен. 

    Кнопка Reset Names вызывает диалог Globally Reset DBMS Property, который позволяет заменить все имена таблиц, связей, индек-сов, колонок и соответствующих свойств, заданных вручную, на значения по умолчанию.

    Имена таблиц и колонок по умолчанию будут сгенерированы на основе имен сущностей и атрибутов логической модели. Если в имени сущности или атрибута встречается пробел, он будет заменен на символ "_".

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

    Таблицы

    Для внесения новой таблицы в модель на физическом уровне служит кнопка на палитре инструментов. Связи между таблицами создаются так же, как на логическом уровне. Щелкнув правой клавишей мыши по таблице и выбрав во всплывающем меню пункты Table Editor илиColumn Editor, можно вызвать редакторы для задания свойств таблиц и колонок.

    ERwin автоматически создает имена таблиц и колонок на основе имен соответствующих сущностей и атрибутов, учитывая максимальную длину имени и другие синтаксические ограничения, накладываемые СУБД. При генерации имени таблицы или колонки по умолчанию все пробелы автоматически преобразуются в символы подчеркивания, а длина имени обрезает-ся до максимальной длины, допустимой для выбранной СУБД. Все изме-нения, сделанные в Table Editor или Column Editor, не отражаются на име-нах сущностей и атрибутов, поскольку информация на логическом и физи-ческом уровнях в ERwin хранится отдельно.

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

    Окно Name служит для задания имени текущей таблицы. Окно Owner позволяет внести имя владельца таблицы, отличное от имени пользователя, производящего генерацию схемы БД. Окно выбора Physical Only служит для создания объектов только на физическом уровне. Если выбрана опция Generate, при генерации схемы БД будет выполняться команда CREATE TABLE. Кнопка DB Sync служит для немедленной синхронизации модели с системным каталогом БД.

    Колонки

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

    По умолчанию ERwin присваивает режимы нулевых значений всем не-ключевым колонкам, исходя из значений по умолчанию, устанавливаемых в редакторе Target Server. Для колонок первичного ключа и альтернативных ключей устанавливается режим NOT NULL. 

    При создании связи колонки первичного ключа родительской таблицы мигрируют в состав колонок дочерней таблицы в качестве внешнего ключа. Кнопка Migrate вызывает диалогMigrate Column Property , который позволяет определять, какие характеристики мигрировавшей колонки будут сохранены в дочерней таблице.

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

    Представления

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

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

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

    Правила валидации и значения по умолчанию

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

    Если щелкнуть по кнопке  , расположенной справа от раскрывающегося списка Valid , появляется диалог Validation Rule Editor, который служит для задания правил валидации. В нем можно задать максимальное и минимальное значение и тип валидации (где проверять - на сервере или в клиентском приложении).

    Например, значение, вводимое в колонку Age, должно быть больше 18, но меньше 180. Для описания этого правила можно создать правило валидации с именем "Проверка_возраста", которое содержит выражение: Age BETWEEN 18 AND 180. Использование этого правила валидации гарантирует, что диапазон вводимых значений будет от 18 до 180. СУБД выдаст сообщение об ошибке, если вводимый возраст находится вне границ заданного диапазона.

    После создания правила валидации и значения по умолчанию можно присвоить одной или нескольким колонкам или доменам.

    Индексы

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

    Например, если необходимо найти клиента по имени (рис.12), можно создать индекс по колонке

    CustomerName таблицы CUSTOMER. В индексе имена клиентов будут отсортированы в алфавитном порядке. Для имени индекс будет содержать ссылку, указывающую, в каком месте таблицы хранится эта строка.

    Для поиска клиента серверу направляется запрос с критерием поиска (CustomerName="Иванов"). При выполнении запроса СУБД просматривает индекс, вместо того чтобы просматривать по порядку все строки таблицы CUSTOMER. Поскольку значения в индексе хранятся в определенном порядке, просматривать нужно гораздо меньший объем данных, что значительно уменьшает время выполнения запроса. Индекс можно создать для всех колонок таблицы, по которым часто производится поиск.



    Рис.12. Поиск с помощью индекса

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

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

    Прямое и обратное проектирование

    Процесс генерации физической схемы БД из логической модели данных называется прямым проектированием (Forward Engineering). При генерации физической схемы ERwin включает триггеры ссылочной целостности, хранимые процедуры, индексы, ограничения и другие возможности, доступ-ные при определении таблиц в выбранной СУБД. 
    Процесс генерации логи-ческой модели из физической БД называется обратным проектированием (Reverse Engineering). ERwin позволяет создать модель данных путем обрат-ного проектирования имеющейся БД. После того как модель создана, мож-но переключиться на другой сервер (модель будет конвертирована) и про-извести прямое проектирование структуры БД для другой СУБД. Кроме режима прямого и обратного проектирования ERwin поддерживает синхронизацию между логической моделью и системным каталогом СУБД на протяжении всего жизненного цикла создания ИС.


    Для генерации системного каталога БД следует выбрать пункт меню Tasks/Forward Engineer/Schema Generation или нажать кнопку   на панели инструментов. Появляется диалог Schema Generation .

    Диалог Schema Generation имеет три закладки: Options. Служит для задания опций генерации объектов БД - триггеров, таблиц, представлений, колонок, индексов и т. д. Для задания опций генерации какого-либо объекта следует выбрать объект в левом списке закладки. после чего включить соответствующую опцию в правом списке .

    В закладке Summary отображаются все опции, заданные в закладке Options. Список опций в Summary можно редактировать так же, как и в Options.
    1   2   3   4   5   6   7   8   9   10   11


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