Връзка едно към много erwin. Основи на работа в Erwin. Изграждане на логически модел на данни. Задаване на правила за валидиране

Недвижим имот

Лабораторна работа №3. Моделиране на база данни с Erwin

Обективен- Придобиване от студентите на практически умения за създаване на логически и физически модели на данни с помощта на CASE - средства за разработка на информационни системи.

Основна информация

ERwin поддържа предно и обратно моделиране на бази данни. При директното моделиране схемата на базата данни се описва директно с помощта на диаграма обект-връзка. Обектите в диаграмата са представени с правоъгълници. Всеки правоъгълник може да има различни визуални атрибути. Всеки обект трябва да получи уникално име. Имената на обектите трябва да са в единствено число. Това се определя от факта, че системата винаги работи върху отделни екземпляри на обекти. В този случай отделните екземпляри на даден обект се разглеждат като обекти, а обектите се разглеждат като клас от обекти. Ако обектите са били описани по време на моделиране в BPwin, те могат просто да бъдат импортирани в ERwin. Пример за диаграма със създадени обекти е показан на фигурата.

Фигура 4 - Пример за диаграма със създадени обекти

Изграждане на модели в ERwin

Има две гледни точки върху информационния модел и съответно две нива на модела. Първото - логическото ниво (гледна точка на потребителя) означава директно показване на факти от реалния живот. Например хората, масите, отделите, кучетата и компютрите са реални обекти. Те са наименувани на естествен език, с всякакви разделители на думи (интервали, запетаи и т.н.). На физическо ниво на модела се разглежда използването на конкретна СУБД, определят се типове данни (например цяло число или реално число), индекси за таблици.

ERwin предоставя възможност за създаване и управление на тези две различни нива на представяне на една диаграма (модел), както и много опции за показване на всяко ниво. Терминът "логическо ниво" в ERwin съответства на концептуалния модел.

Етапи на изграждане на информационен модел.

  • дефиниране на субекти;
  • определяне на зависимости между субекти;
  • задаване на първични и алтернативни ключове;
  • дефиниране на атрибути на обекта;
  • привеждане на модела до необходимото ниво на нормална форма;
  • преход към физическото описание на модела: присвояване на съответствия име на обект - име на таблица, атрибут на обект - атрибут на таблица;
  • задаване на тригери, процедури и ограничения;
  • генериране на база данни.

Erwin създава визуално представяне (модел на данни) за проблема, който се решава. Този изглед може да се използва за подробен анализ, усъвършенстване и разпространение на документацията, необходима в цикъла на разработка. ERwin обаче далеч не е просто инструмент за рисуване. ERwin автоматично създава базата данни (таблици, индекси, съхранени процедури, тригери за референтна цялост и други обекти, необходими за управление на данни).

Създаване на образувание.

За да добавите обект към модела, щракнете върху бутона за обект в лентата с инструменти (Erwin Toolbox), след което щракнете върху мястото на диаграмата, където искате да поставите новия обект. Щракването с десния бутон върху обект и избирането на Редактор на обекти от изскачащото меню извежда диалоговия прозорец Редактор на обекти, който определя името, описанието и коментарите на обекта.

Всеки обект трябва да бъде напълно дефиниран с текстово описание в раздела Дефиниция. Тези дефиниции са полезни както на логическо ниво, тъй като ви позволяват да разберете какъв вид обект е, така и на физическо ниво, тъй като могат да бъдат експортирани като част от схема и използвани в реална база данни ( СЪЗДАВАЙТЕ КОМЕНТАР върху entity_name). Разделите Note, Note2, Note3, UDP (User Defined Properties) се използват за добавяне на допълнителни коментари и дефиниции към даден обект.

В раздела Икона на всеки обект можете да съпоставите изображението, което ще се показва в изгледа на модела на ниво икона, и изображението, което ще се показва на всички останали нива.

Разделът UDP на диалоговия прозорец на редактора на обекти се използва за дефиниране на дефинирани от потребителя свойства (Потребител - дефинирани свойства). Когато щракнете върху бутона на този раздел, се извиква диалоговият прозорец Редактор на дефинирани от потребителя свойства (също се извиква от менюто Редактиране/UDPs). В него трябва да посочите типа на обекта, за който се стартира UDP (диаграма като цяло, обект, атрибут и т.н.) и типа на данните. За да добавите ново свойство, щракнете върху бутона в таблицата и въведете името, типа данни, стойността по подразбиране и дефиницията.

Създаване на атрибути.

Следващата стъпка в създаването на модел е да зададете атрибути за всеки обект. При посочване на тип атрибут е възможно да се използват домейни. Домейнът е абстрактен, дефиниран от потребителя тип, който се присвоява на всеки физически тип данни. Всеки домейн обаче може да има свои собствени стойности по подразбиране и правила за валидиране на въвеждане. ERwin предоставя възможност за документиране на всички стъпки за създаване на ваши собствени типове данни. Използвайки концепцията за домейн, базата данни е преносима към различни хардуерни платформи.

Фигура 5 - Създаване на нов домейн Фигура 6 - Указване на свойствата на новия домейн

Фигура 7 - Стойност по подразбиране за новия домейн

Фигура 8 - Използване на домейн за указване на типа данни на атрибут.

За да опишете атрибути, щракнете с десния бутон върху обект и изберете елемента Редактор на атрибути от менюто, което се показва. Ще се появи диалоговият прозорец Редактор на атрибути.

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

Атрибутите на първичния ключ в раздела Общи на диалоговия прозорец Редактор на атрибути трябва да бъдат маркирани в полето за избор на първичен ключ.
Разделите Definition, Note и UDP носят същите функции като при дефинирането на обект, но на ниво атрибут.

За по-голяма яснота на диаграмата, всеки атрибут може да бъде свързан с икона. Това може да стане с помощта на списъка за избор на икони в раздела Общи.

Много е важно да дадете правилното име на атрибута. Атрибутите трябва да бъдат посочени в единствено число и да имат ясно семантично значение.

Според синтаксиса IDEF1X името на атрибута трябва да бъде уникално в рамките на модела (не само в рамките на обекта!). По подразбиране, когато се опитате да въведете име на вече съществуващ атрибут, ERwin го преименува. Например, ако атрибутът Comment вече съществува в модела, друг атрибут (в различен обект) ще бъде наречен Comment/2, след това Comment/3 и т.н.
Когато прехвърляте атрибути в и между обекти, можете да използвате техниката на плъзгане и пускане, като изберете бутон в палитрата с инструменти.

За да създадете нова връзка, изберете идентифицираща или неидентифицираща връзка в палитрата с инструменти (ERwin Toolbox), щракнете първо върху родителския и след това върху дъщерния обект.
В палитрата с инструменти бутон съответства на идентифицираща връзка, бутон на връзка много към много и бутон на неидентифицираща връзка. За да редактирате свойствата на връзка, щракнете с десния бутон върху връзката и изберете Редактор на връзка от контекстното меню.

В раздела Общи на диалоговия прозорец, който се появява, можете да зададете мощността, името и типа на връзката.

Комуникационна мощност (кардиналност)- служи за указване на съотношението на броя на екземплярите на родителския обект към броя на екземплярите на дъщерния.
Има четири вида мощност:

Общият случай, когато едно копие на родителския обект съответства на 0, 1 или много екземпляри на дъщерния обект, не се маркира с никакъв символ;

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

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

· числото отбелязва случая, когато едно копие на родителския обект съответства на предварително определен брой екземпляри на дъщерния обект.

По подразбиране символът за мощност на връзката не е показан на диаграмата. За да покажете името, използвайте контекстното меню, което се появява, когато щракнете с десния бутон някъде в диаграмата, която не е заета от обекти на модела, изберете елемента Опции за показване/Връзка и след това активирайте опцията Кардиналност.

Тип връзка (идентифициращ/неидентифициращ).

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

Екземпляр на зависим обект се дефинира само чрез връзка с родителския обект. Когато се установи идентифицираща връзка, атрибутите на първичния ключ на родителския обект автоматично се прехвърлят към първичния ключ на дъщерния обект. Тази операция за добавяне на атрибути към дъщерен обект при създаване на връзка се нарича миграция на атрибути. В дъщерния обект новите атрибути се маркират като външни ключове - (FK).

Когато се установи неидентифицираща връзка, дъщерният обект остава независим и атрибутите на първичния ключ на родителския обект мигрират към неключовите компоненти на дъщерния обект. Неидентифицираща връзка се използва за свързване на независими обекти.

Идентифициращата връзка е показана на диаграмата като плътна линия с удебелена точка в дъщерния край на връзката, неидентифициращата връзка е показана като пунктирана линия.

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

Име на връзката (глаголна фраза)- фраза, характеризираща връзката между родителски и дъщерни субекти. За идентифицираща или неидентифицираща връзка "един към много" е достатъчно да посочите име, което характеризира връзката от родителския към дъщерния обект (родител-към-дете). За връзка "много към много" трябва да се уточнят имената както от родител към дете, така и от дете към родител. За да покажете името, използвайте контекстното меню, което се появява, когато щракнете с десния бутон някъде в диаграмата, която не е заета от обекти на модела, изберете елемента Опции за показване/Връзка и след това активирайте опцията Глаголна фраза.

Име на роля или функционално име (Rolename)е синоним на атрибут на външен ключ, който показва каква роля играе атрибутът в дъщерния обект. Можете да зададете името на ролята в раздела Rolename/RI Actions на диалоговия прозорец Relationship Editor.

Създаване на ключове.

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

Първичен ключе атрибут или група от атрибути, които уникално идентифицират екземпляр на обект. Атрибутите на първичния ключ в диаграмата не изискват специално обозначение - това са онези атрибути, които са в списъка с атрибути над хоризонталната линия. Когато добавяте нов атрибут в диалоговия прозорец Редактор на атрибути, за да го направите атрибут на първичен ключ, квадратчето за отметка Първичен ключ в долната част на раздела Общи трябва да бъде разрешено. В диаграмата ключовият атрибут може да бъде добавен към първичния ключ с помощта на режима за прехвърляне на атрибути (бутон в палитрата с инструменти).

Един обект може да има няколко атрибута или набора от атрибути, които претендират да бъдат първичен ключ. Такива кандидати се наричат кандидат ключове.

Ключовете могат да бъдат сложни, т.е. съдържащ множество атрибути. Сложните първични ключове не се нуждаят от специална нотация - това е списък с атрибути над хоризонталната линия. При избора на първичен ключ трябва да се даде предпочитание на по-прости ключове, т.е. ключове, съдържащи по-малко атрибути.

Много обекти имат само един кандидат ключ. Този ключ става първичен ключ. Някои обекти може да имат повече от един възможен ключ. Тогава един от тях става първичен ключ, а останалите стават алтернативни ключове.

Алтернативен ключе кандидат ключ, който не е станал първичен ключ.

Всеки ключ отговаря на индекс, чието име също се присвоява автоматично. Имената на ключовете и индексите могат да се променят ръчно, ако желаете.

В диаграмата атрибутите на алтернативните ключове са означени като (Akn.m.), където n е поредният номер на ключа, m е поредният номер на атрибута в ключа. Когато алтернативен ключ съдържа множество атрибути, (Akn.m.) се поставя след всеки.

Чужди ключовесе създават автоматично, когато релация свързва обекти: релациите образуват връзка към атрибутите на първичния ключ в дъщерния обект и тези атрибути формират външен ключ в дъщерния обект (миграция на ключове). Атрибутите на външния ключ се обозначават със знак (FK) след тяхното име.

Един зависим обект може да има един и същ ключ от множество родителски обекти. Един обект може също да получи един и същ външен ключ многократно от един и същи родител чрез множество различни връзки. Когато ERwin срещне едно от тези събития, той разпознава, че двата атрибута са еднакви и поставя атрибутите на външния ключ на зависимия обект само веднъж. Тази комбинация или обединение на идентични атрибути се нарича обединяване.

Има случаи, когато обединяването е нежелателно. Например, когато два атрибута имат едно и също име, но всъщност се различават по значение и е необходимо тази разлика да бъде отразена в диаграмата. В този случай трябва да използвате имената на ролята на външния ключ.

Връзките в диаграмата са представени от линии, преминаващи от един обект (таблица) към друг. На всяка връзка се присвоява уникално име. Свързаните таблици са разделени на родителски и дъщерни таблици. Родителските таблици се показват като правоъгълни правоъгълници, дъщерните таблици са заоблени.

След задаване на всички атрибути на формата на данните, е необходимо да се преобразува създадения логически модел във физически. За това е необходимо в Инструментиизбирам Извлечете нов модел, където за целеви бази данни изберете ODBC/генеричен(за използване в MySQL СУБД) вижте Фигура 9. Нашият модел (вижте Фигура 4) ще бъде преобразуван във формата вижте Фигура 11.

Фигура 9 - Преобразуване на логически модел във физически

Фигура 10 - Физически модел, показващ формата на данните.

Фигура 11 - Генериране на SQL код

Упражнение

1. Изградете диаграма с дадени обекти (директно моделиране) за дадена предметна област.

2. Задайте атрибути за всеки дефиниран обект. Когато задавате атрибути, използвайте домейни.

3. Въведете връзки между обекти. Дайте на връзките уникални имена.

4. Използвайки MYSQL СУБД, решете директното генериране на базата данни за проектираната информация.

5. Докладът трябва да съдържа концептуален модел и физическа база данни в СУБД MYSQL.

тестови въпроси

1. Каква е разликата между логическото и физическото ниво на представяне на модели на данни с помощта на ERwin?

2. Каква е разликата между моделите на данни, представени под формата на диаграма обект-връзка, базирана на ключове и под формата на пълен атрибутен модел?

3. Кои са основните компоненти на моделите на данни, представени според методологията IDEF1X?


Списъкът с типове данни, поддържани от СУБД, трябва да се провери при производителя

6. Моделиране в ERwin

Мястото на ERwin в информационното моделиране
Процесът на изграждане на информационен модел се състои от следните стъпки:

  • дефиниране на субекти;
  • определяне на зависимости между субекти;
  • задаване на първични и алтернативни ключове;
  • дефиниране на атрибути на обекта;
  • привеждане на модела до необходимото ниво на нормална форма;
  • преход към физическото описание на модела: присвояване на съответствия име на обект - име на таблица, атрибут на обект - атрибут на таблица; задаване на тригери, процедури и ограничения;
  • генериране на база данни.

ERwin създава визуално представяне (модел на данни) за проблема, който се решава. Това представяне може да се използва за подробен анализ, усъвършенстване и разпространение като част от документацията, необходима в цикъла на разработка. ERwin обаче далеч не е просто инструмент за рисуване. ERwin автоматично създава базата данни (таблици, индекси, съхранени процедури, тригери за референтна цялост и други обекти, необходими за управление на данни).

Картографиране на логическия и физическия слой на модела на данни в ERwin

В ERwin има две нива на представяне и моделиране – логическо и физическо. Логическото ниво означава директно показване на факти от реалния живот. Например хората, масите, отделите, кучетата и компютрите са реални обекти. Те са наименувани на естествен език, с всякакви разделители на думи (интервали, запетаи и т.н.). На логическо ниво не се разглежда използването на определена СУБД, типовете данни (например цяло число или реално число) не са дефинирани и индексите за таблици не са дефинирани.
Целевата СУБД, имена на обекти и типове данни, индекси съставляват второто (физическо) ниво на модела ERwin.
ERwin предоставя възможност за създаване и управление на тези две различни нива на представяне на една диаграма (модел), както и много опции за показване на всяко ниво.

Компоненти на ERwin диаграма и основни изгледи на диаграма

ERwin диаграмата е изградена от три основни блока – обекти, атрибути и релации. Ако разглеждаме диаграмата като графично представяне на правилата на предметната област, тогава единиците са съществителни, а връзките са глаголи.
Изборът между логическо и физическо ниво на показване се извършва чрез лентата с инструменти или менюто. В рамките на всяко от тези нива има следните режими на показване:

  • Режим "Обект" - вътре в правоъгълниците се изписва името на обекта (за логическия модел) или името на таблицата (за физическото представяне на модела); се използва за удобен преглед на голяма диаграма или за поставяне на правоъгълници на обект върху диаграмата.
  • Режимът за дефиниране на обект се използва за представяне на диаграмата на други хора.
  • Режим на атрибути. Когато се преминава от предметната област към модела, се изисква да се въведе информация за това какво представлява обектът. Тази информация се въвежда чрез настройка на атрибути (на физическо ниво - колони от таблици). В този режим правоъгълникът на обекта е разделен с линия на две части - атрибутите (колоните), които съставляват първичния ключ, се показват в горната част, а останалите атрибути се показват в долната част. Този режим е основният при проектиране на логическо и физическо ниво.
  • Режим "първични ключове" - вътре в правоъгълниците - показват се само атрибутите/колоните, които съставляват първичния ключ.
  • Режим на икона. За целите на представянето, всяка таблица може да получи икона (bitmap).
  • Режим на показване на глаголна фраза. Дъгите на връзките показват глаголни фрази, свързващи обекти (за логическо ниво) или имена на външни ключове (за физическо ниво).

Диаграмата може да обхваща повече от един екран и повече от един лист, когато се отпечата. В допълнение към превъртане на екрана, за преглед на модела има режими за намаляване / увеличаване на изображението, показване на целия модел, показване на избрана част от модела.

Инструменти за създаване на модел в ERwin

Основните инструменти за създаване на модел са достъпни както от менюто, така и през прозореца с инструменти. С тяхна помощ се създават независими и зависими същности, идентифициращи и неидентифициращи отношения, пълни и непълни категории, неспецифични отношения и текстови елементи.
Щракването на мишката върху обект влиза в един от многото редактори на ERwin:

  • редактори, свързани с обекта като цяло (дефиниция на обект, допълнителна информация, тригери, индекси, характеристики на таблица, свързани с таблицата съхранени процедури);
  • редактори на атрибути (дефиниране на атрибути, колони на таблица във физическия изглед на модела, хранилище на 4GL инструменти, като разширени атрибути в PowerBuilder).

Идентификация на субекта. Обекти в ERwin

В диаграмата обектът е представен от правоъгълник. В зависимост от режима на представяне на диаграмата, правоъгълникът може да съдържа името на обекта, неговото описание, списък с неговите атрибути и друга информация.
Хоризонталната линия на правоъгълника разделя атрибутите на обект на два набора - атрибути, които съставляват първичния ключ в горната част и други (невключени в първичния ключ) в долната част.
Субектът е набор от реални или абстрактни обекти, като хора, места, събития, факти, които споделят общи характеристики. Същността е логично понятие. Обектът съответства на таблица в реална СУБД. В ERwin един обект визуално представя три основни типа информация:

  • атрибути, които съставят първичния ключ;
  • неключови атрибути;
  • тип обект (независим/зависим).

Първичен ключ е атрибут или набор от атрибути, които уникално идентифицират екземпляр на обект. Ако няколко набора от атрибути могат еднозначно да идентифицират обект, тогава изборът на един от тях се извършва от разработчика въз основа на анализа на предметната област.
За всеки първичен ключ ERwin създава уникален индекс при генериране на структурата на базата данни.
Екземплярите на независим обект могат да бъдат уникално идентифицирани, без да се определят връзките му с други обекти; зависим субект, от друга страна, не може да бъде идентифициран еднозначно, без да се определят връзките му с други субекти. Зависим обект се показва в ERwin като заоблен правоъгълник.

Връзки в ERwin

Връзката е функционална зависимост между два обекта (по-специално, обектът може да бъде свързан със самия себе си). Например, важно е да знаете името на служител и също толкова важно е да знаете в кой отдел работи. По този начин между субектите "отдел" и "служител" съществува връзка "състои се от" (отделът се състои от служители). Връзката е концепция на логическо ниво, която съответства на външен ключ на физическо ниво. В ERwin връзките са представени от пет основни части от информация:

  • тип връзка (идентифицираща, неидентифицираща, пълна/непълна категория, неспецифична връзка);
  • предприятие майка;
  • дъщерен (зависим) субект;
  • комуникационна мощност (кардиналност);
  • допустимостта на празни (нулеви) стойности.

Връзката се нарича идентифицираща, ако екземпляр на дъщерен обект се идентифицира чрез връзката му с родителския обект. Атрибутите, които съставляват първичния ключ на родителския обект, са включени в първичния ключ на дъщерния обект. Дъщерен обект в идентифицираща връзка винаги е зависим обект.
Казва се, че една връзка е неидентифицираща, ако екземпляр на дъщерен обект е идентифициран по начин, различен от този чрез връзка с родителския обект. Атрибутите, които съставляват първичния ключ на родителския обект, са включени в неключовите атрибути на дъщерния обект.
За да дефинирате ERwin връзки, изберете типа на връзката, след което щракнете върху родителските и дъщерните обекти. Идентифициращата връзка е показана като плътна линия; неидентифицираща - пунктирана линия. Линиите завършват с точка от страната на дъщерния обект.
Когато се дефинира връзка, атрибутите на първичния ключ на родителския обект се мигрират към съответната област на атрибута на дъщерния обект. Следователно такива атрибути не се въвеждат ръчно.
Атрибутите на първичен ключ на родителския обект се мигрират с техните имена по подразбиране. ERwin ви позволява да въвеждате роли за тях, т.е. нови имена, под които мигриращите атрибути ще бъдат представени в дъщерния обект. В случай на множество миграции на атрибут, такова преименуване е необходимо. Например, субектът "посредническа сделка" има атрибут "код на фирма-продавач" и "код на фирма-купувач". В този случай първичният ключ на обекта „предприятие“ („код на предприятието“) има две роли в дъщерния обект.
На физическо ниво името на ролята е името на колоната с външен ключ в дъщерната таблица.
Кардиналността на една връзка е съотношението на броя на екземплярите на родителския обект към съответния брой екземпляри на дъщерния обект. За всяка връзка, различна от неспецифичната, тази връзка се записва като 1:n.
ERwin, в съответствие с методологията IDEF1X, предоставя 4 опции за n, които са представени с допълнителен знак в дъщерния обект: нула, едно или повече (по подразбиране); нула или единица; точно N, където N е конкретно число.
Допустимостта на NULL стойности в неидентифициращи връзки ERwin изобразява празен диамант върху дъгата на връзката от страната на родителския обект.
Обозначенията на мощността, съответно нула, едно или повече, едно или повече, нула или едно в IE нотация са показани на фиг. един.

Фиг. 1. Нотация за мощност на връзката в нотация на IE

Името на връзката на логическо ниво е "глагол", свързващ обекти. Физическото име на връзката (което може да се различава от логическото) за ERwin означава името на ограничението (constraint) или индекса.

Редактиране на графичен модел

Всички обекти от модела ERwin могат да се редактират чрез средства, приети в Windows - групиране, копиране, изтриване, преместване, използване на системния буфер. Цветовете и шрифтовете се задават в удобни диалогови прозорци.
Компонентите на модела, представени чрез текст (имена на обекти, атрибути, текстови елементи), могат да се редактират директно на екрана.

Алтернативни ключове

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

Обърнати индекси

Атрибутите, които съставят алтернативния ключ, недвусмислено (уникално) идентифицират екземплярите на обекта. В ERwin можете също да съставяте групи атрибути, които не идентифицират уникално екземпляри на обекти, но често се използват за достъп до данни. За всяка такава група атрибути ERwin създава неуникални индекси.
Едни и същи атрибути на обект могат да бъдат включени в няколко различни ключови групи.

Обединяване на атрибути

Зависим обект може да наследи един и същ външен ключ от повече от един родителски обект или от същия родителски обект чрез множество взаимоотношения. Освен ако не са въведени различни роли за такова множествено наследяване, ERwin счита, че атрибутите на външния ключ се появяват само веднъж в зависимия обект.
Обединяването е обединяването на две или повече групи атрибути на външен ключ в един външен ключ (група атрибути), при предположението, че стойностите на едноименните атрибути в дъщерния обект винаги са еднакви.
Нека разгледаме един пример: обектът "служител" има първичен ключ "код на служител" и е свързан чрез идентифицираща връзка с обектите "съпруг" и "деца". В този случай първичният ключ се мигрира към зависими обекти. На свой ред, субектът "съпруг" има неидентифицираща връзка с обекта "деца". Има два ключови пътя за миграция, но в дъщерния обект атрибутът ID на служителя се появява веднъж като елемент на първичния ключ.
Има случаи, когато обединяването на атрибути дава некоректен резултат от гледна точка на предметната област. За уеднаквяване на атрибути се въвеждат имена на роли.

Някои обекти дефинират цяла категория обекти от същия тип. В ERwin в този случай се създава обект, който да дефинира категорията и за всеки елемент от категорията, след което за тях се въвежда връзка за категоризиране. Родителският обект на категория се нарича супертип, а децата се наричат ​​подтип.
Например, обектът "служител" може да съдържа данни както за служители на пълен работен ден, така и за временно наети служители. Първият и вторият имат различни, частично припокриващи се набори от атрибути (минималното пресичане на подтипове е първичният ключ). Общата част от тези атрибути, включително първичния ключ, се поставя в субекта на супертипа на служителя.
Различната част (например данни за почасово заплащане за временни работници и данни за заплата и отпуск за работници на пълен работен ден) се поставят в обекти на подтип.
В надтипа на обекта е въведен атрибут на дискриминатор, който прави възможно разграничаването между конкретни екземпляри на подтипа на обекта.
В зависимост от това дали всички възможни субекти на подтипа са включени в модела, категориалната връзка е пълна или непълна. Продължавайки примера, ако супертип може да съдържа данни за съкратени служители, тогава тази връзка е непълна категоризация, тъй като няма запис за нея в обекти - подтипове.
В ERwin пълната категория е представена с кръг с две подчертани линии, а непълната категория с кръг с една подчертана линия.

Внедряване на референтна цялост с ERwin

Референтната цялост е налагането на изискването стойностите на външния ключ на екземпляр на дъщерен обект да съответстват на стойностите на първичния ключ в родителския обект. Референтната цялост може да се контролира за всички операции, които променят данни (INSERT/UPDATE/DELETE). Контролите за референтна цялост в ERwin включват автоматично генериране на тригери и използването на декларативни механизми за референтна цялост (за онези СУБД, които поддържат тези механизми).
За всяка връзка на логическо ниво могат да се задават изисквания за обработка на операции INSERT / UPDATE / DELETE за родителските и дъщерните обекти. ERwin предоставя следните опции за обработка на тези събития:

  • липса на проверка;
  • валидиране;
  • забрана на операцията;
  • изпълнение на каскадна операция (ИЗТРИВАНЕ/АКТУАЛИЗИРАНЕ);
  • задаване на празна (NULL стойност) или зададена стойност по подразбиране.

Според избраната опция ERwin автоматично създава необходимите тригери в SQL диалекта на целевата СУБД. В същото време ERwin използва библиотека от тригерни шаблони, които могат да бъдат модифицирани.
При генериране на структура на база данни тригерите за референтна цялост могат да бъдат заменени на три нива:

  1. Тригерите могат да бъдат отменени, за да предоставят правила за целия модел.
  2. Тригерите, посочени за конкретна връзка, могат да бъдат заменени.
  3. Тригерите, определени за конкретна таблица, могат да бъдат заменени.

Типът замяна се посочва от разработчика при генериране на схемата на базата данни (фиг. 6 - съответно RI Type Override, Relationship Override, Entity Override).

Съхраняване на информация в ERwin модел

Обикновено ERwin моделите се записват на диск като файл. Възможно е моделът да се съхранява в целевата СУБД. За да направите това, използвайки самия ERwin, се създава метабаза ERwin в целевата СУБД. Информацията за модела се съхранява в тази база данни. В конкретен случай базата данни може да бъде и dBase файлове, с които ERwin работи чрез ODBC.

Пример за разработка на модел в ERwin

Помислете за цикъла на разработка, като използвате примера, предоставен в статията на Codd.
Нека накратко припомним съдържателната страна на проблема. Поддържат се досиета на служителите. За всеки служител се съхранява информация за децата и списъка на длъжностите, заемани от този служител. За длъжностите се съхранява информация за установените длъжностни заплати.
Първо, нека създадем логическото ниво на модела. За да направите това, задайте режима на показване за обекти (Display/Entity Level). Използвайки лентата с инструменти, ще създадем обектите "служител", "деца", "работна история", "история на заплатите". Ще именуваме обекти на руски.
След като изберете всеки обект, ние ще зададем подробно описание за него на руски в редактора "Определение на обекта". Това описание ще се появи в отчетите на ERwin и може да се покаже в диаграма.
Нека уточним връзките между обектите. Например „служител“ има идентифициращо отношение „е родител“ към обекта „деца“. Описанието на връзката се въвежда в редактора "Редактор/Връзка".
Резултатът от работата се показва на диаграмата на ERwin (фиг. 2).

Ориз. 2. Диаграма на ниво обект

Сега нека превключим към режима за настройка на атрибута (Дисплей/Ниво на атрибут). В редактора "Entity/Attribute" нека зададем имената на ключови и неключови атрибути на руски език. Обърнете внимание, че за дъщерния обект „деца“ ключовият атрибут „номер на служител“ не е указан ръчно. ERwin осигурява своята миграция от родителския обект. Същото се случва и с други дъщерни обекти.
За атрибута „име“ на обекта „служител“ посочваме, че това е алтернативен ключ (ще приемем, че всички служители имат уникални собствени/фамилни имена). За да направите това, след името на атрибута, поставяме указателя AK1 в скоби.
Резултатът от работата се показва на диаграмата на ERwin (фиг. 3) в нотация IDEF1X.

Ориз. 3. Диаграма на ниво атрибут в нотация IDEF1X

Изгледът на същата диаграма в нотация IE (Information Engineering) е показан на Фиг.4.

Ориз. 4. Диаграма на ниво атрибут в нотация на IE

Тъй като имената на атрибутите и обектите бяха зададени от нас на руски, за да се премине към физическото ниво на модела, те трябва да бъдат свързани с идентификатори на таблици, колони и ограничения, които отговарят на правилата на целевата СУБД (обикновено това означава използване латински букви, цифри и някои специални знаци).
В редактора "Схема на база данни" посочете съответното име на таблица за всеки обект. След това в редактора "Дефиниране на атрибути" задаваме имената на колоните на таблиците, съответстващи на атрибутите на обектите. ERwin също така осигурява мигриране на имена на колони към подчинени таблици.
На този етап можете също да използвате редактора "Разширени атрибути", за да дефинирате разширените атрибути на PowerBuilder (формат на дисплея, маска за редактиране, контролно правило, подравняване, заглавия и коментари).
Редакторът "Дефиниции на релации" указва физическото име на релацията, което съответства на името на ограничението, създадено от ERwin в базата данни.
Сега всичко е готово за създаване на база данни и трябва да изберете целевата СУБД (ако това не е направено преди). Да изберем например Sybase System 10.
В редактора на схема на база данни на SYBASE задаваме типовете данни за колоните на таблицата.
Диалогът, в който се избира типът данни, е показан на Фиг.5.

Ориз. 5. Дефиниране на физическия модел

Сега можем да преминем към създаването на базата данни. За да направите това, се изпълнява командата "генериране на схема на Sybase". ERwin ще изгради SQL пакет за генериране на база данни. Фигура 6 показва диалоговия прозорец за избор на параметри за генериране на пакет за генериране на база данни. Фигурата показва, че може да се настрои филтър (генериране на не всички таблици), пакет от SQL изрази може да бъде прегледан (преглед), отпечатан, записан във файл (отчет) и генериран (генериране).

Ориз. 6. Избор на опции за генериране на база данни

7. Разширени функции на ERwin

Обратно инженерство

Обратното инженерство, т.е. възстановяване на информационния модел от съществуваща база данни, се използва при избора на оптимална платформа (правилно оразмеряване) за съществуваща настолна база данни или база данни на мейнфрейм, както и при разширяване (или модифициране) на съществуваща структура, която е построена без необходимата съпътстваща документация. След приключване на процеса на възстановяване на модела, ERwin автоматично "разпръсква" таблиците върху диаграмата. Вече можете да извършвате модификации, като използвате логическата схема - добавяте обекти, атрибути, коментари, връзки и т.н. След приключване на промените, една команда - синхронизиране на модела с базата данни - актуализира всички направени промени.
Изграждането на модел може да се извърши или на базата на каталожните данни на базата данни, или на базата на пакета с SQL оператори, с който е създадена базата данни.

Синхронизиране на база данни

В процеса на разработване на информационна система може да възникне ситуация, когато структурата на базата данни и информационният модел не съответстват един на друг. ERwin дава възможност да ги приведе в съответствие.
За тази цел е предвидена функция за синхронизиране с базата данни. След свързване към СУБД се предлага списък с несъответствия между съществуващата структура на данните и модела. Например, ако в базата данни се създаде нова таблица, тогава ERwin ще предложи да я включи в модела. Ако към модела се добави нова таблица, ERwin ще предложи да я създаде в реалната база данни. По същия начин, когато добавяте колони към база данни или модел, ERwin предлага извършване на подходящите операции за синхронизиране. Процедурата за избор на синхронизирани таблици е показана на Фигура 7.

Ориз. 7. Избиране на синхронизирани таблици

ERwin "знае" за такива характеристики на съхранение на данни в отделни СУБД като сегменти (в Sybase) и таблично пространство (в Oracle). Информацията за физическото разположение може да бъде включена в модела и използвана при предно и обратно инженерство.

Интерфейси към СУБД

ERwin поддържа директен интерфейс с основната СУБД: DB2 версии 2 и 3, Informix версии 5.1, 6.0, 7.1, Ingres, NetWare SQL, ORACLE версии 6 и 7, Progress, Rdb версии 4 и 6, SQL/400 версии 2 и 3 , SQLBase версии 5 и 6, SQL Server версии 4 и 6, Sybase версия 4.2, Sybase System 10 и 11, Watcom SQL. Имайте предвид, че се поддържат както най-модерните, така и предишните версии на основната СУБД (фиг. 8).

Ориз. 8. Избор на СУБД за създаване на модел

ERwin също поддържа десктоп (десктоп) СУБД: Microsoft Access, FoxPro, Clipper, dBASE III, dBASE IV и Paradox.
Дизайнът на физическия слой се извършва по отношение на базата данни, която се предполага, че ще се използва в системата. Важно е ERwin да "познава" съответствията между възможностите на СУБД от различни доставчици, така че е възможно да се конвертира физическа схема, предназначена за една СУБД, в друга.
За да се създаде физическата структура на базата данни, може да се поиска генерирането на DDL скрипт (език за дефиниране на данни). Това използва SQL диалекта за избрания тип и версия на сървъра. Въпреки че генерираният код не трябва да се променя, възможно е да го запишете във файл или да го отпечатате.

Поддръжка за 4GL инструменти

ERwin се предлага в няколко различни издания, насочени към най-разпространените инструменти за разработка на 4GL. Поддържаните инструменти включват PowerBuidler от Powersoft, SQL Windows от Gupta, Visual Basic от Microsoft, Oracle*CASE от Oracle.
Двупосочните взаимодействия на базата данни на ERwin осигуряват както управление на информацията в задния край, така и от страна на клиента. Например за PowerBuilder можете да преглеждате/редактирате разширени атрибути в ERwin редактори.
Фокусът на ERwin върху 4GL инструментите ви позволява да зададете за бъдещи приложения повечето от параметрите, пряко свързани с базата данни, още на етапа на проектиране на информационния модел.
Нека да покажем принципите на организиране на такова взаимодействие на примера на PowerBuilder.
PowerBuilder създава няколко вътрешни таблици в базата данни, за да съхранява своето хранилище (разширени атрибути за datawindow). Използването на разширени атрибути гарантира, че стилът на показване на едни и същи колони на базата данни се поддържа за всички приложения, създадени от екип. Разширените атрибути задават параметри като формат на показване, стил на редактиране, израз за валидиране, начална стойност, подравняване, ширина и височина на елемента на дисплея, етикет на формуляр за редактиране, заглавие на показване на таблица.
Същите операции за синхронизиране са разрешени за разширените атрибути, както за целия модел, т.е. описанията могат да бъдат заредени в базата данни и, обратно, разширени дефиниции на атрибути, създадени от средата на PowerBuilder, могат да бъдат заредени от базата данни в ERwin за модификация.
Пример за дефиниране на разширени атрибути е показан на Фигура 9.

Ориз. 9. Задаване на разширени атрибути на PowerBuilder

Функцията ERwin за генериране на DataWindow ви позволява да генерирате прототипи на прозорци с данни на бъдещо приложение още на етапа на създаване на информационен модел. За създаване на Data Windows се предлага Wizard, с помощта на който се задават стилът на прозореца и избраните колони на таблиците.

Помислете за цикъла на разработка, като използвате примера, предоставен в статията на Codd.
Нека накратко припомним съдържателната страна на проблема. Поддържат се досиета на служителите. За всеки служител се съхранява информация за децата и списъка на длъжностите, заемани от този служител. За длъжностите се съхранява информация за установените длъжностни заплати.
Първо, нека създадем логическото ниво на модела. За да направите това, задайте режима на показване за обекти (Display/Entity Level). Използвайки лентата с инструменти, ще създадем обектите "служител", "деца", "работна история", "история на заплатите". Ще именуваме обекти на руски.
След като изберете всеки обект, ние ще зададем подробно описание за него на руски в редактора "Определение на обекта". Това описание ще се появи в отчетите на ERwin и може да се покаже в диаграма.
Нека уточним връзките между обектите. Например „служител“ има идентифициращо отношение „е родител“ към обекта „деца“. Описанието на връзката се въвежда в редактора "Редактор/Връзка".
Резултатът от работата се показва на диаграмата на ERwin (фиг. 2).

Ориз. 2. Диаграма на ниво обект

Сега нека превключим към режима за настройка на атрибута (Дисплей/Ниво на атрибут). В редактора "Entity/Attribute" нека зададем имената на ключови и неключови атрибути на руски език. Обърнете внимание, че за дъщерния обект „деца“ ключовият атрибут „номер на служител“ не е указан ръчно. ERwin осигурява своята миграция от родителския обект. Същото се случва и с други дъщерни обекти.
За атрибута „име“ на обекта „служител“ посочваме, че това е алтернативен ключ (ще приемем, че всички служители имат уникални собствени/фамилни имена). За да направите това, след името на атрибута, поставяме указателя AK1 в скоби.
Резултатът от работата се показва на диаграмата на ERwin (фиг. 3) в нотация IDEF1X.

Ориз. 3. Диаграма на ниво атрибут в нотация IDEF1X

Изгледът на същата диаграма в нотация IE (Information Engineering) е показан на Фиг.4.

Ориз. 4. Диаграма на ниво атрибут в нотация на IE

Тъй като имената на атрибутите и обектите бяха зададени от нас на руски, за да се премине към физическото ниво на модела, те трябва да бъдат свързани с идентификатори на таблици, колони и ограничения, които отговарят на правилата на целевата СУБД (обикновено това означава използване латински букви, цифри и някои специални знаци).
В редактора "Схема на база данни" посочете съответното име на таблица за всеки обект. След това в редактора "Дефиниране на атрибути" задаваме имената на колоните на таблиците, съответстващи на атрибутите на обектите. ERwin също така осигурява мигриране на имена на колони към подчинени таблици.
На този етап можете също да използвате редактора "Разширени атрибути", за да дефинирате разширените атрибути на PowerBuilder (формат на дисплея, маска за редактиране, контролно правило, подравняване, заглавия и коментари).
Редакторът "Дефиниции на релации" указва физическото име на релацията, което съответства на името на ограничението, създадено от ERwin в базата данни.
Сега всичко е готово за създаване на база данни и трябва да изберете целевата СУБД (ако това не е направено преди). Да изберем например Sybase System 10.
В редактора на схема на база данни на SYBASE задаваме типовете данни за колоните на таблицата.
Диалогът, в който се избира типът данни, е показан на Фиг.5.

Ориз. 5. Дефиниране на физическия модел

Сега можем да преминем към създаването на базата данни. За да направите това, се изпълнява командата "генериране на схема на Sybase". ERwin ще изгради SQL пакет за генериране на база данни. Фигура 6 показва диалоговия прозорец за избор на параметри за генериране на пакет за генериране на база данни. Фигурата показва, че може да се настрои филтър (генериране на не всички таблици), пакет от SQL изрази може да бъде прегледан (преглед), отпечатан, записан във файл (отчет) и генериран (генериране).

Ориз. 6. Избор на опции за генериране на база данни

Разширени функции на ERwin

Лаборатория #5

Обективен:

Упражнение:

Работна последователност

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

· Изтеглете програмата Erwin.

В диалоговия прозорец, който се появява, изберете бутона за избор Създайте нов модел.На екрана ще се появи диалогов прозорец. Създаване на модел - Изберете шаблон,където искате да изберете нивото на симулация.

Erwin има две нива на симулация: логическа и физическа. На логичнониво, данните се представят така, както биха изглеждали в реалния свят. Обектите на логическо ниво са обекти и атрибути.

На физическиниво, моделът зависи от конкретната реализация на базата данни, избрана от потребителя. Когато моделът се премести на физическия слой, обектите се трансформират в таблици, а атрибутите в полета, така че всички имена и описания на физическия модел трябва да отговарят на конвенциите, приети за избраната СУБД.

Инсталирайте превключвател Логически/Физическиза създаване на модел с логически и физически слоеве.

В полетата База даннии версияуказва типа и версията на сървъра, за който се създава моделът. Изберете Access, 2000 от списъка.Щракнете Добре.

· Главният прозорец на програмата ще се появи на екрана.

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

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

В допълнение към този списък има бутони на лентата с инструменти (вижте таблица 1.1).

Таблица 1.1.

Бутони, разположени на лентата с инструменти на програмата Erwin

Бутон Предназначение
Създаване, отваряне, запазване и отпечатване на модел
Извикване на диалоговия прозорец на браузъра за отчети за генериране на отчети
Промяна на нивото на изгледа на модела: Ниво на обект, Ниво на атрибут, Ниво на дефиниция
Променете мащаба на изгледа на модела
Генериране на DB схема, привеждане в съответствие на схемата с модела и избор на сървър (достъпно само на ниво физически модел)
Превключване между областите на модела на предметната област


За директна работа с елементи на модела програмата разполага с палитра с инструменти (Erwin Toolbox), която представлява „плаващ прозорец“ (фиг. 1.2). Ако е необходимо, палитрата с инструменти може да бъде премахната от екрана и извикана чрез натискане на клавишната комбинация CTRL-T.

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

Въвеждане на обекти в модела

На този етап е необходимо да се въведат следните обекти в модела, идентифицирани в резултат на анализа на предметната област (доставка на стоки в съответствие с договорите): купувач, договор, фактура, стоки, склад.

Изберете от лентата с инструменти (ERwin Toolbox) бутона Същносткато щракнете върху него с показалеца на мишката. След това щракнете върху мястото на диаграмата, където искате да поставите новия обект. В полето на диаграмата ще се появи правоъгълник, изобразяващ нов обект с автоматично генерирано име "E/1".

Въведете името на обекта " Купувач" и натиснете Въведете.

· По същия начин вмъкнете още четири обекта в диаграмата: договор, фактура, продукт, склад.

Като щракнете с десния бутон върху обекта и изберете елемента от контекстното меню Свойства на обекта, можете да се обадите на редактора на обекти Субекти(фиг. 1.6), което ви позволява да промените свойствата на избрания обект. Редакторът на обект може да бъде извикан и от главното меню: Модел | образувания.



Ориз. 1.6. Редактор на обекти

В горната част на прозореца на редактора има списък с всички обекти, присъстващи в диаграмата. С него можете да изберете обекта, чиито свойства искате да видите или промените. По подразбиране избраният обект в диаграмата е обектът, върху който се щракне. След това има полето Име, което показва името на обекта. Името може да се редактира.

По-долу в прозореца на редактора има няколко раздела:

Определение(дефиниция) - на тази страница въвеждате дефиницията на обекта.

Забележка, Забележка2, Забележка3(бележка) - използва се за въвеждане на произволен текст, свързан с обекта, като например примерни данни и заявки.

UDP– дефинирани от потребителя свойства.

икона(икона) - за по-голяма яснота на всеки обект може да бъде присвоена икона, която се показва до неговото име.

За всеки обект въведете определение определение.

Ключови групи

・Извикване на редактор на група ключове Ключови групи,като щракнете с десния бутон върху обект Купувачи избиране от контекстното меню Ключови групи. Редакторът на група ключове може да бъде извикан и от главното меню: Модел | ключови групи.

Редакторът на група ключове съдържа контроли:

образувание– поле с падащ списък, в който трябва да изберете обект за редактиране.

Прозорец със списък на ключови групи.Всяка група е представена с отделен ред, включващ име (Key Group), тип (Type) и дефиниция (Definition).

Освен това диалоговият прозорец на редактора на група ключове съдържа следните раздели:

ü Членове (членове).Уточняват се членове на ключови групи и редът им в групата.

ü Общи (общи настройки).Превключватели, които ви позволяват да зададете типа на групата ключове. За първични и външни ключове тези групи не са налични.

ü Определение (дефиниция).Произволна текстова информация, свързана с избраната група ключове.

ü Бележка (бележка).Бележка към избраната група.

ü UDP (персонализирани свойства).

・Щракнете върху бутона Нов.

· В прозореца Нова ключова групав полето Ключова групавъведете име на ключова група − ТИН. В полето Индекссе показва генерираното от Erwin име на индекс. Оставете го без промяна.

превключвател Тип група ключовеопределя типа на генерирания ключ. Това може да бъде алтернативен ключ или инверсен запис. Изберете Алтернативен ключи натиснете Добре. Нововъведеният алтернативен ключ ще се появи в списъка с ключове.



Отидете на отметка Членове. Новият ключ все още не съдържа никакви атрибути, така че правилният списък Ключови членове на групата(членове на ключовата група) е празен. Изберете атрибут от списъка вляво ТИНи го преместете в десния списък с помощта на бутона със стрелка (вижте фиг. 1.8).

Ориз. 1.8. Редактор на ключови групи

· По същия начин създайте групите ключове за обратните входове, показани в табл. 1.3.

Лаборатория №6

Указване на декларативни правила за референтна цялост

· Битие по логиченниво на модела на данни, изберете връзката „сключва“ между обектите Купувач и Договор, като щракнете върху нея с показалеца на мишката. След това натиснете десния бутон на мишката и изберете елемента в контекстното меню Свойства на връзката(редактор на връзки).

В прозореца на редактора на връзки връзкаотидете на раздела Действия на R.I. Запознайте се с правилата за референтна цялост за връзката "Купувач - Договор", зададена по подразбиране. Тези настройки предотвратяват вмъкването и модифицирането на екземпляр на дъщерен обект, както и изтриването и модифицирането на родителския обект. Това означава, че не се допуска изтриване или промяна на купувач, ако в базата данни има сключени с него договори, както и въвеждане на договор без посочване на купувач или с позоваване на несъществуващ купувач. Така изпълнихме условието, според което договорът може да съществува само за определен купувач.

· Прегледайте установените правила за референтна цялост за всички други връзки.

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

Нормализация на данните

От модела може да се види, че има множество атрибути TEL в обекта Купувач. Един клиент може да има множество телефонни номера, което е нарушение на първата нормална форма, която изисква всички стойности на атрибути да бъдат атомарни. Следователно е необходимо атрибутът TEL да се отдели в отделен обект.

· Създайте обекта Phone, съдържащ следните атрибути: TEL_CODE (първичен ключ, тип - число) и TEL (тип - низ).

· Свържете обектите Клиент и Телефон с идентифицираща връзка. Задайте мощност на връзката - Един или повече (P)и въведете името на връзката - То има.

Избор на сървър

Изпълнете команда база данни | Изберете база данни.

· В диалоговия прозорец Erwin/ERX - целеви сървъртрябва да зададете типа сървър - Достъпи неговата версия 2000 . Той също така определя типа данни по подразбиране и условието NULL за новосъздадени колони. Някои от опциите в този диалогов прозорец зависят от избрания тип сървър.

· След като изберете сървъра, натиснете бутона Добре.

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

В модела има две релации много към много: Артикул - Договор и Артикул - Фактура, които трябва да бъдат разрешени на физическо ниво. Резултатът от разрешаването на тези връзки е представен в табл. 2.1.

Таблица 2.1.

Резултат от разрешаване на връзки много към много

Резолюцията на релации много към много се извършва автоматично при преминаване към физическия слой или с помощта на специален съветник Съветник за трансформиране на много взаимоотношения.

· За да извикате този съветник, изберете връзката „Стоки – Договор“, като щракнете върху нея с показалеца на мишката. След това натиснете десния бутон на мишката и изберете елемента в контекстното меню Създаване на асоциативна таблица(създайте асоциативна таблица). Първият диалогов прозорец на съветника ще се появи на екрана, съдържащ текст за неговата цел.

Въведете в полето име на таблица(име на таблица) - План за доставка. В полето Коментар на таблицата(коментари към таблицата) въведете текста: Информация за доставка на стоки по договора.

· В модела се появи нова таблица Delivery_Plan, свързана чрез идентификационна връзка с таблиците Стоки и Договор.

· Новата таблица да се допълни с три колони (виж Таблица 2.1). За да направите това, изберете таблицата План за доставкакато щракнете върху него с показалеца на мишката. След това натиснете десния бутон на мишката и изберете елемента в контекстното меню Колони (редактор на колони) . Работата с този редактор е подобна на работата с редактора на атрибути.

· Самостоятелно въведете три нови колони в съответствие с таблицата. 2.1.

· Използвайки описания по-горе метод (използвайки съветника), трансформирайте връзката "Стоки - Фактура" и допълнете получената асоциативна таблица Пратка с две колони съгласно табл. 2.1.

Задаване на правила за валидиране

Посочване на списък с валидни стойности

В съответствие с разглежданата предметна област, за полето RATE_VAT на таблицата Product, нека зададем списък с валидни стойности: 0, 10 и 18%.

Колони.

· В прозореца на редактора в полето Колона- ДДС СТАВКА.

· Отидете в раздела на избраната СУБД – Достъп.

· Валиден.

в диалог Правила за валидиранещракнете върху бутона Нов.

в диалог Ново правило за валидиранев полето Логичновъведете името на правилото − Проверка на ставката на ДДС. Щракнете върху бутона Добре.

・Отидете на отметка Общ. В група Типзадайте опция Списък с валидни стойности.

· В полето Валидна стойностна първия ред въведете 0. На втория и третия ред въведете стойностите: 10 и 18.

· Проверете това в горната част на прозореца на редактора Правила за валидиранепояви се ред: Проверка на ставката на ДДС(Име за проверка) IN (0, 10, 18)(Правило за валидиране).

・Щракнете ДОБРЕ.В прозореца на редактора колонивърху отметката Достъпв полето Валиденсе появи името на създаденото правило - „Проверка на ставката на ДДС“.

Задаване на стойности по подразбиране

Нека създадем правило, според което стойността на текущата дата ще бъде заменена в полето DATE_DOG на таблицата Споразумение по подразбиране.

Извикайте контекстното меню на таблицата Споразумение и изберете елемента Колони.

· В прозореца на редактора в полето Колонаизберете колоната, за която ще бъде зададено правилото – ДАТА_КУЧЕ.

・Маркирано Достъпщракнете върху бутона, разположен вдясно от падащия списък По подразбиране.

· В диалоговия прозорец Стойности по подразбиране/началнищракнете върху бутона Нов.

в диалог Нова стойност по подразбиранев полето Логичновъведете името на правилото − Текущата дата. Щракнете върху бутона Добре.

・Маркирано Достъпв полето Стойност на сървъра - Достъп по подразбираневлизам Дата()(функция, която получава стойността на текущата дата).

・Щракнете ДОБРЕ.В прозореца на редактора колонивърху отметката Достъпв полето По подразбиранесе появи името на създаденото правило - „Текуща дата“.

· Задайте същото правило за полето DATE_SHIPMENT на таблицата Invoice. За да направите това, в прозореца на редактора на колони Колонаизберете полето DATE_OTGR и в раздела Достъп в полето По подразбиранеизберете правило от падащия списък Текущата дата.

Определяне на правила за проверка на входа

Нека създадем правило за проверка на входните стойности за полето ЦЕНА на таблицата Продукт, според което това поле не може да има стойности по-малки от 0.

Извикайте контекстното меню на таблицата с продукти и изберете елемента Колони.

· В прозореца на редактора в полето Колонаизберете колоната, за която ще бъде зададено правилото - ЦЕНА.

・Маркирано Достъпщракнете върху бутона, разположен вдясно от падащия списък Валиден.

в диалог Правила за валидиранещракнете върху бутона Нов.

в диалог Ново правило за валидиранев полето Логичновъведете името на правилото − Проверка на цената. Щракнете върху бутона Добре.

・Отидете на отметка Общ. В група Типзадайте опция мин./макс.

· В полето Минвъведете 1. Освен долната граница на стойностния диапазон, тук можете да зададете и горната граница ( Макс).

В горната част на прозореца на редактора Правила за валидираненовосъздадено беше добавено към списъка с правила за валидиране: Проверка на цената >=1.

・Щракнете върху бутона Добре.

Лаборатория #7

Изчисляване на размера на базата данни

Обективен:

Да се ​​усвои методологията за изчисляване на размера на базата данни, реализирана в Erwin.

Лаборатория №8

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

Обективен:

проучване на видове отчети;

· Научете как да създавате отчети

Лаборатория #5

Основи на работа в Erwin. Изграждане на логически модел на данни

Обективен:

· овладяване на умения за работа в Erwin;

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

Упражнение:

Изградете логически информационен модел за доставка на стоки в съответствие с договорите с помощта на инструменти на Erwin.

Описание на интерфейса ERwin. CASE интерфейсът на инструмента ERwin се състои от три основни части. Първият е главното меню и лентите с инструменти.

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

Ориз. 5.3.

Вторият е Model Explorer. Съдържа три раздела: Модел, Тематични области и Домейни. Най-често използваният в Model Explorer е разделът Domains или Model (който съдържа всички обекти и модели). В Домейни, съответно, се показват домейни, в Тематични области - показани области (фиг. 5.4).

Ориз. 5.4.

И третата е директно зоната, запазена за създаване на обектен модел, в която се създават и редактират всички обекти на модела. В долната част се появяват раздели с имената на съхранените дисплеи (Stored Displays) (фиг. 5.5).


Ориз. 5.5.

ERwin има две нива на представяне на моделни данни: логическо и физическо. логическо ниво- това е абстрактен изглед на данните, в него данните се представят така, както изглеждат в реалния свят, например "Клиент", "Цех" или "Фамилия на служител". Обектите на модела, които са представени на логическо ниво, се наричат ​​обекти и атрибути. Логическият модел на данни може да бъде изграден върху друг логически модел, като модел на процес. Логическият модел на данни е универсален и по никакъв начин не е свързан с конкретна реализация на СУБД.

Физически моделданните, напротив, зависят от конкретната СУБД, като всъщност са дисплей на системния каталог. Физическият модел съдържа информация за всички обекти на базата данни. Тъй като няма стандарти за обектите на бази данни (например, няма стандарт за типовете данни), физическият модел зависи от конкретната реализация на СУБД. Следователно един и същи логически модел може да съответства на няколко различни физически модела. Ако в логическия модел няма значение какъв конкретен тип данни има даден атрибут, то във физическия модел е важно да се опише цялата информация за конкретни физически обекти - таблици, колони, индекси, процедури и т.н. Разделяне на модела на логически и физически ви позволява да решавате много важни задачи.

ERwin има няколко нива на показване на диаграма: ниво на обект, ниво на атрибут, ниво на дефиниция, ниво на първичен ключ и ниво на икона. Можете да превключвате между първите три нива с помощта на бутоните на лентата с инструменти. Можете да превключвате към други нива на показване, като използвате контекстното меню, което се появява, ако „щракнете“ върху всяко място в диаграмата, което не е заето от обекти на модела. В контекстното меню изберете елемента Ниво на показване и след това желаното ниво на показване. ERwin ви позволява да свързвате големи и малки икони с обект. При превключване на ниво икона се показва голяма икона. За да покажете малка икона, изберете елемента Показване на обект/Икона на обект от контекстното меню. Малка икона ще бъде показана отляво на името на обекта на всички нива на показване на модела.

Задайте цвят и шрифт.Има няколко начина за задаване на шрифта и цвета на обектите в ERwin. Първо, за да зададете цвета и шрифта на обекта, използвайте лентата с инструменти за шрифт и цвят, която се намира под главния панел. За да редактирате шрифта и цвета на конкретен обект, като щракнете с десния бутон върху обект или връзка и изберете елемента Шрифт и цвят на обект... от изскачащото меню, извикайте диалоговия прозорец Редактор на шрифт/цвят, който дефинира име, описание и коментари на обекта. В диалоговия прозорец Font/Color Editor можете да изберете шрифт и да зададете неговия размер, стил и цвят, да зададете цвета на запълване (свойство Цвят на запълване, само за обекти) и цвета на линията (свойство Цвят на контура, само за обекти).

Когато създавате реални модели на данни, броят на обектите и атрибутите може да бъде стотици. За по-удобна работа с големи модели ERwin осигурява подмножества на модели (предметни области),в които можете да включите тематично общи обекти. Подмножество на модел може да включва произволен набор от обекти, връзки и текстови коментари. За да създадете, изтриете или редактирате подмножества на модели, трябва да извикате диалоговия прозорец Предметни области (меню Модел/Тематични области...), в който да посочите името на подмножеството и включените в него обекти. Всички промени, направени в която и да е предметна област, се отразяват автоматично върху общия модел. Един и същи обект може да бъде включен в няколко предметни области.

Съхранен дисплей- представяне на подмножество от модела, показващо специфичен аспект от структурата на данните. Една предметна област може да включва няколко съхранени съпоставяния. Запазеният дисплей включва същите обекти и връзки като в тематичната област, но те могат да бъдат разположени по различен начин на екрана, да имат различни нива, различни мащаби и цветове на обекти или фонове.

За да създадете запаметен дисплей, използвайте диалоговия прозорец Запаметени дисплеи (меню Формат/Настройки за запаметен дисплей...). За да превключвате между съхранени дисплеи, използвайте разделите в долната част на диаграмата.

Основните компоненти на диаграмата на ERwin са обекти, атрибути и връзки. Всеки обект е набор от подобни индивидуални обекти, наречени екземпляри. Всеки екземпляр е индивидуален и трябва да се различава от всички останали екземпляри. Атрибутът изразява определено свойство на обект. От гледна точка на базата данни (физическия модел) един обект съответства на таблица, екземпляр на обект - ред в таблица, а атрибут - колона от таблица.

Създаване на логически модел на данни за тематична област "Мебели по поръчка".Създаденият логически модел повтаря структурата на проектираната ИС. За да създадете обект в областта за създаване на обектни модели, е необходимо (след като се уверите, че сте на нивото на логическия модел: превключването между логически и физически модел е падащият списък от дясната страна от лентата с инструменти) „щракнете“ върху бутона за обект в лентата с инструменти ( ERwin Toolbox) Q , след което щракнете върху мястото на диаграмата, където искате да поставите новия обект. Като щракнете с десния бутон върху обект и изберете Свойства на обект... от изскачащото меню, можете да извикате диалоговия прозорец Обекти, който дефинира името, описанието и коментарите на обекта (например име на обект - доставчик, описание - данни на доставчика). Всеки обект се дефинира с текстово описание в раздела Дефиниция. Разделите Бележка, Бележка 2, Бележка 3, UDP (дефинирани от потребителя свойства) се използват за добавяне на допълнителни коментари към обекта. Следващата стъпка е да създадете атрибути на обекта. Както бе споменато по-горе, всеки атрибут съхранява информация за конкретно свойство на обект и всеки екземпляр на обект трябва да бъде уникален. Атрибут или група от атрибути, които идентифицират обект, се нарича първичен ключ. За да създадете атрибути, щракнете с десния бутон върху обект и изберете елемента Атрибути... от менюто, което се показва. Появява се диалоговият прозорец Атрибути. Ако щракнете върху бутона Нов..., след това в диалоговия прозорец Нов атрибут, който се появява, задайте името на атрибута, името на колоната, съответстваща на него във физическия модел, и домейна (например името на атрибут е името на доставчика). Домейнът на атрибута ще се използва при дефиниране на типа колона на ниво физически модел. Атрибутите на първичния ключ в раздела Общи на диалоговия прозорец Атрибути трябва да бъдат маркирани в полето за избор на първичен ключ.

За да покажете икона на атрибут, изберете елемента Показване на обект в контекстното меню и активирайте опцията Икона на атрибут в каскадното меню. Ще се покаже малка икона вляво от името на атрибута на ниво атрибут на дисплея на модела. Името на обекта се показва над правоъгълника, изобразяващ обекта, списъкът с атрибути на обекта се показва вътре в правоъгълника. Списъкът е разделен с хоризонтална лента, над която са атрибутите на първичния ключ, под които са неключовите атрибути. Атрибутите трябва да бъдат посочени в единствено число и да имат ясно семантично значение. Спазването на това правило ви позволява частично да разрешите проблема с нормализирането на данните още на етапа на дефиниране на атрибути. Например създаването на атрибута Телефони на доставчика в обекта Доставчик противоречи на изискванията за нормализиране, тъй като атрибутът трябва да бъде атомарен, т.е. да не съдържа множество стойности. Според синтаксиса IDEF1X името на атрибута трябва да бъде уникално в рамките на модела (не само в рамките на обекта!). Всеки екземпляр на обект трябва да бъде уникален и различен от другите атрибути. Следващата стъпка в създаването на модел е да се установят връзки между обекти. Всяка връзка трябва да се нарече глагол или глаголна фраза (глаголни фрази за връзка, фиг. 5.6). Името на връзката изразява някакво ограничение или бизнес правило и прави диаграмата по-лесна за четене, например:

Всеки КЛИЕНТ ПОРЪЧВА;

Всеки ПОРЪЧАЙ ДИЗАЙН.

Ориз. 5.Б.Име на връзката - глаголни фрази за връзка

За да създадете нова връзка:

  • поставете курсора върху желания бутон в палитрата с инструменти (идентифицираща или неидентифицираща връзка) и натиснете левия бутон на мишката;
  • щракнете първо върху родителския и след това върху дъщерния обект. Когато се установят връзки между обекти, атрибутите на първичния ключ на родителския обект се мигрират като външни ключове към дъщерния обект. По подразбиране името на връзката не се показва на диаграмата. За да покажете името, използвайте контекстното меню, което се появява, ако щракнете с левия бутон върху което и да е място в диаграмата, което не е заето от обекти на модела, изберете елемента Показване на връзката и активирайте опцията Глаголна фраза в контекстното меню.

Логическият модел на данните на предметната област "Мебели по поръчка" е показан на фиг. 5.7.


Ориз. 5.7.

Пълният атрибутен модел представя данни в третата нормална форма и включва всички обекти, атрибути и връзки и е показан на фиг. 5.8.

На ниво обект моделът е показан на фиг. 5.9.

На фиг. Фигура 5.10 представя модела на данните на ниво дефиниция.

Ориз. 5.8.

Ориз. 5.E.Слой обект на модел на данни