Компютри Windows интернет

Установяване на връзки между субектите. Примери за проектиране на модел в ERWin Erwin

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

● вид на връзката (идентифицираща, неидентифицирана, пълна/непълна категория, неспецифична връзка);

● предприятие майка;

● дете (зависимо) лице;

● комуникационна мощност (кардиналност);

● допустимост на празни (нулеви) стойности.

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

Когато се установи неидентифицираща връзка, детето остава независимо и атрибутите на първичния ключ на родителя са включени в неключовите атрибути на детето. Неидентифицирана връзка се използва за свързване на независими субекти. За да дефинирате ERwin релации, изберете типа на връзката, след което използвайте мишката, за да посочите родителския и дъщерния обект. Идентифициращата връзка е показана като плътна линия; неидентифициращи - с пунктирана линия. Линиите завършват с точка от страната на дъщерния обект.

Кардиналност - използва се за указване на съотношението на броя на екземплярите на родителския обект към броя на екземплярите на детето.

Има четири вида субекти:

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

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

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

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

· Допустимостта на празни (NULL) стойности в неидентифициращи връзки се изобразява от ERwin като празен диамант върху дъгата на връзката от страната на родителския обект.

Името на връзката на логическо ниво е глагол, който свързва същностите. Физическото име на връзката (което може да се различава от логическото) за ERWin означава името на ограничението или индекса. За да покажете името на връзката, изберете опция от менюто: Формат / Показване на връзката / Глаголна фраза.

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

Например, обектът „входящ документ“ може да бъде или заявка, или поръчка. Първият и вторият имат различни, частично припокриващи се набори от атрибути (минималното пресичане на подтиповете е първичният ключ). Общата част на тези атрибути, включително първичния ключ, се поставя във входящия документ за супертип обект. Различни части (например данни за съдържание, подател) се поставят в подтипове на обекти.

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

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

Фигура 1.4 - Пример за непълен набор от категории

Фигура 1.5 - Пример за пълен набор от категории

3. Един обект може да бъде общ обект в произволен брой категоризационни връзки.

4. Атрибутите на първичния ключ на обекта на категорията трябва да съвпадат с атрибутите на първичния ключ на общия обект.

5. Всички екземпляри на категория-обект имат една и съща стойност на дискриминатор, а всички екземпляри от други категории трябва да имат различни стойности на дискриминатор (вижте фиг. 4 и фиг. 5).

Роли.

Името на ролята (функционално име) е синоним на атрибут на външен ключ, който показва ролята, която атрибутът играе в дъщерна единица. По подразбиране в списъка с атрибути се показва само името на ролята. За да покажете пълното име на атрибут (и функционално име, и име на роля), изберете Формат / Показване на обект от контекстното меню и след това активирайте опцията Име на роля / Атрибут. Пълното име се показва като функционално име и основно име, разделени с точка. Името на ролята се задава в раздела Rolename на диалоговия прозорец Relationship. Този прозорец се извиква чрез двукратно щракване върху връзката.

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

Представителство.

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

Споразумения

Нека приемем някои условности за краткост на последващото представяне:

· Щракване - натискане на левия бутон на мишката.

· Щракване с десен бутон - натискане на десния бутон на мишката.

Двойно щракване - две последователни щраквания върху бутона на мишката

· Избор - преместете курсора на съответния обект (елемент на диаграмата, елемент от менюто, икона) и щракнете с левия бутон на мишката.

Плъзнете - изберете обект и, без да пускате бутона на мишката, преместете курсора vдруга позиция.

· Запис от тип File / Open означава, че трябва да изберете елемента от менюто File, а след това от менюто, което се отваря, елемента Open.

ERwin Desktop

На фиг. 1 показва работния плот на софтуера ERwin от Logic Works.

Фиг. 1- Десктоп Erwin.

На фигура 1 цифрите показват:

1- главно меню;

2- лента с инструменти;

3- набор от специални инструменти;

4- панел с шрифтове и цветове;

5- поле за диаграма.

Нека разгледаме по-отблизо компонентите на работния плот.

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

Toolbar - лента с инструменти;

Лента с инструменти за шрифтове и цветове - панел с шрифтове и цветове;

Statusbar - лента на състоянието;

ERwin Toolbox е набор от специални инструменти.

Ако някой от изброените елементи не е отметнат, тогава съответният елемент не се показва на работния плот. Елементи Опция / Покажи менюто на дисплея и Опция / Покажи менюто на редактора добавят допълнителен 1gush към главното меню; вие: Дисплей и редактор.

Лентата с инструменти съдържа следните групи икони:

Работа с файлове:

Създайте нова диаграма;

Отворете съществуваща диаграма;

Изпратете диаграмата за печат.

Имайте предвид, че тези икони се дублират от командите на елемента от главното меню Файл.



Нива на представяне на модела:

Ниво на образувание;

Ниво на атрибути;

Ниво на описание;

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

Тези инструменти се дублират от елемента от менюто Display. Той съдържа допълнителни нива на представяне: Ниво на първичен ключ - показват се само първични ключове, ниво на физически ред - атрибутите не са разделени на ключови и неключови.

Мащабиране:

Намаляване;

Нараства;

Без увеличение;

Най-малкият (по-нататъшното намаляване ще доведе до нечетливост на диаграмата);

Преглед на частта (след като изберете този инструмент, изберете в работното поле фрагмента, който искате да видите).

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

Работа със сървъра:

Генерирайте скрипт за сървъра;

Свържете се със сървъра;

Изберете сървър.

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

Избор на обект;

Манипулиране на атрибути;

Независим субект;

Зависимо лице;

Пълна категоризация;

Непълна категоризация;

Идентифицираща връзка едно към много;

Неидентифицирана връзка „ода на много“;

Връзка много към много;

Текстов етикет.

КОНЦЕПТУАЛЕН ДИЗАЙН

Създаване на субекти

Субектите в концептуалната диаграма могат да бъдат зависими и независими. На диаграмата всеки обект е представен с правоъгълник. Над него е името на обекта. Правоъгълникът е разделен на две части: горната е основната ключова област; дъно - област на други атрибути. При конструиране на обект правоъгълникът първоначално е празен, а името има формата E / n (например E / 1, E / 2 и т.н.).

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

Ако дизайнерът не е доволен от позицията на обекта в полето, изберете иконата "Посочи към обект" от набора от специални инструменти и плъзнете обекта на ново място. За да изтриете избрания обект, използвайте клавиша Delete на клавиатурата си. Можете да промените размера на правоъгълника, представляващ обекта, като изберете елемента Опция / Размер на обекта в главното меню. Елементът от менюто Опции / Оформление се използва за подреждане на позицията на обектите в полето.

Сега нека дефинираме името на обекта и неговите характерни атрибути. За да направите това, използвайте елемента Entity-Attribute от менюто с десен бутон. В полето Entity Name на отворения редактор въведете името на обекта. С помощта на превключвателя можете да промените зависимостта на обекта. Полето за редактиране на първичен ключ е предназначено за въвеждане на имената на атрибутите, които съставляват първичния ключ. Полето Non-Key Attributes съдържа неключови атрибути. Имайте предвид, че и в двата случая клавишът Enter на вашата клавиатура се използва за разделяне на атрибутите един от друг. На фиг. 2 показва пример за независима единица.

Ориз. 2 - Независим субект

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

ERwin предоставя възможност за манипулиране на отделни атрибути. За да направите това, изберете иконата Манипулационни атрибути. В този режим можете:

· Премахване на атрибут. За да направите това, изберете отделен атрибут и натиснете Delete на клавиатурата.

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

· Преместване на атрибути между обекти. Техниката на това действие е подобна на предишната. Ако клавишът Ctrl бъде натиснат, докато премествате атрибут, той ще бъде копиран в друг обект.

Изграждане на връзки

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

Фиг. 3. - Идентифицираща връзка

По подобен начин се изгражда и неидентифицираща връзка. Изобразява се с пунктирана линия и диамант до родителския правоъгълник. Такъв ромб означава, че съществуването на родителя е по избор, т.е. полето за външен ключ може да бъде нула. Изграждането на неидентифицираща връзка в ERwin се характеризира с прехвърляне на първичния ключ на родителя към неключовите дъщерни атрибути. Фигура 4 показва неидентифицираща връзка.

Ориз. 4. - Неидентифицирана връзка

Както беше отбелязано, проектирането на връзка много към много води до нов обект. Пример за изграждане на връзка от този тип между обектите първи и втори е показан на фиг. 5.

Ориз. 5. - Връзка много към много

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

· Име на връзката (поле за глаголна фраза).

· Тип на връзката: идентифицираща или неидентифицирана.

· Кардиналност. ERwin ви позволява да дефинирате следните типове връзки.

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

2. Един или повече. Такива връзки се означават с буквата P до правоъгълника, представляващ детето.

3. Нула или едно. Кардиналността се обозначава с буквата Z.

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

· Възможност за съществуване на Null - стойности (превключете Nulls).

· Ролята на външния ключ. В този случай името на ролята се записва в полето Име на ролята. В този случай полето Foreign Key на редактора съдържа конструкцията<имя роли>.<имя первичного ключа родителя>.

Ако диаграмата не показва имената или мощността на връзката, тогава трябва да поставите указатели срещу елементите Display / Verb Phrase и Display / Cardinality.

За да изтриете връзка, изберете иконата "Посочи към обект", щракнете върху съответната връзка и натиснете Delete на клавиатурата.

Разделянето на обекти в категории в ERwin е показано по подобен начин на фиг. 6.

Ориз. 6 - Пълна категоризация

За да създадете категории, трябва да направите следното:

Опишете напълно основния обект;

Създаване на обекти от категория;

Изберете икона за пълна или непълна категоризация от набор от специални инструменти;

Щракнете върху основния обект;

Кликнете върху една от категориите;

За да изградите всяка следваща категория, щракнете върху знака за категория и след това върху съответния обект.

За да премахнете връзката на една от категориите с основния обект, изберете съответния клон и натиснете Delete на клавиатурата. Ако искате да изтриете цялата категоризация, посочете знака за категория и натиснете Delete.

ЛОГИЧЕСКИ ДИЗАЙН

Логическият дизайн започва с избора на модел на данни. Всички СУБД, с които работи ERwin, са релационни, това определя избора на модел на данни.

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

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

1. Ограничавам - забраняващ. Характеризира се със забрана на действия със свързани лица.

2. Каскада – каскадна. Такава стратегия е да се извършват каскадни операции върху свързани субекти.

3. Задайте Null - нула. Тази стратегия е да зададете стойността на полето на Null.

След като изберем СУБД, нека започнем да описваме данните в нейните термини. За да направите това, изберете от изскачащото меню, като щракнете с десния бутон върху обекта, елемента<имя выбранной СУБД>Схема на база данни. В прозореца, който се отваря, можете да посочите имената на таблиците и техните полета, както и характеристиките на тези полета.

На практика често се случва, че не всички взаимоотношения от какъвто и да е тип се определят от едни и същи стратегии за поддържане на ограничения за целостта. За да промените стратегиите за конкретна връзка, използвайте елемента Referential Integrity от изскачащото меню с десния бутон на мишката върху връзка. Ако няма информация за стратегията, избрана в диаграмата, поставете показалеца до Показване/Цялост на референдума.

За да създадете скрипт за избраната СУБД, щракнете върху иконата "Генериране на скрипт за сървър". В същото време ERwin изгражда схемата на базата данни според определени таблици. Ако избраната СУБД поддържа тригери за писане, те се изграждат в зависимост от избраните стратегии за поддържане на ограничения за целостта.

ФИЗИЧЕСКИ ДИЗАЙН

На този етап от проектирането ще добавим допълнителни индекси към получената верига. За да направите това, използвайте артикула<имя СУБД>Индекс на менюто, което изскача чрез щракване с десния бутон върху обект. В прозореца, който се отваря, щракнете върху бутона Нов, за да създадете нов индекс, след което задайте атрибут за него, като щракнете върху визуалното изображение на този атрибут. Забележете, че сега на общата диаграма атрибутите, по които се конструират индексите, са маркирани с буквите AK. Това означава, че те са алтернативни ключове.

УПРАЖНЕНИЕ

1. Създайте концептуална схема на база данни за сертифициращия орган с помощта на ERwin. Описанието на предметната област е дадено по-долу.

Сертифициращият орган е акредитиран да издава сертификати за определени видове продукти. Всеки вид продукт се описва с код (според класификатора), наименование на типа (например млечни продукти) и тип (например мляко). Може да има няколко регулаторни документа за всеки вид продукт и действието на всеки регулаторен документ се отнася за няколко вида продукти. Регулаторният документ се характеризира със своето ниво (GOST, OST и др.), Номер и име.

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

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

маса 1

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

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

2. Преобразувайте концептуалната схема в таблици на избраната СУБД с помощта на ERwin. Изграждане на тригери.

3. Създайте трима потребители за базата данни със следните права:

1) „Доклади“ – правото да четете цялата информация (няма други права);

2) "Указатели" - всички права на информация за служители, клиенти, продукти и нормативни документи;

3) "Документация" - всички права на информация относно вътрешната документация на сертифициращия орган и клиентите; правото на четене на данни за продукти и регулаторни изисквания.

Докладът трябва да съдържа:

Разпечатка на концептуална схема от ERwin;

Обосновка на избора на стратегии за подкрепа на ограниченията на целостта на базата;

Структурата на таблиците и тригерите;

Описание на средствата за създаване на потребители на база данни.

КОНТРОЛНИ ВЪПРОСИ

1. Какви видове взаимоотношения могат да съществуват в предметната област?

2. Как да премахнете връзката много към много от схемата на базата данни?

3. Каква е разликата между идентифициращи и неидентифициращи връзки?

4. Кога става необходимо да се опишат ролите на външните ключове?

5. Как можете да оправдаете избора на категории?

6. Каква е разликата между пълна и непълна категоризация?

7. Какви видове стратегии за поддържане на ограниченията на целостта са използвани в лабораторията?


Библиография

1. Дата K.J. Въведение в системите за бази данни.- Учебник. надбавка: Превод от английски. - 6-то изд. - М. и др.: Уилямс, 2000 .-- 846 с.

2. Робинсън С. Microsoft Access 2000: учебник. курс: per. от английски - SPB .: Петър, 2001 .-- 511 с.

3. Кузнецов С.Д. Основи на базите данни: Курс на лекциите: Учебник. ръководство.М .: Интернет ун-т Информ. технологии, 2005.-484 с.

4. Хофман В.Е., Хомоненко А.Д. Работа с бази данни в Delphi. Санкт Петербург: Dhv, 2002.-656 с.

5. Маклаков С.В. Bpwin и Erwin. Кейс-инструменти за разработване на информационни системи.-М.: Диалог-Мифи, 2003.-254с.

6. Малихина М.П. Бази данни: основи, дизайн, използване: Учебник. ръководство за университети.-2-ро изд.-СПБ.: BHV-Петербург, 2006.-517 с.

Нека да разгледаме цикъла на разработка, като използваме примера, предоставен в статията на Код.
Нека припомним накратко съществената страна на проблема. Служителите се водят на отчет. За всеки служител се съхранява информация за децата и списъка на длъжностите, заемани от този служител. За длъжностите се съхранява информация за установените пощенски заплати.
Първо, нека създадем логическия слой на модела. За да направите това, задайте режима на показване на обекти (Дисплей / Ниво на обект). С помощта на лентата с инструменти създайте обектите "служител", "деца", "работна история", "история на заплатите". Ще назоваваме обекти на руски език.
След като изберете всеки обект, задайте подробно описание за него на руски в редактора "Определение на обекта". Това описание ще се появи в отчетите на ERwin и може да бъде показано на диаграма.
Нека посочим връзките между обектите. Например, "служител" се свързва с идентичността "родител" с обекта "деца". Описанието на връзката се въвежда в редактора/редактор за връзки.
Резултатът от работата се показва на диаграмата ERwin (фиг. 2).

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

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

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

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

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

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

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

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

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

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

ЛАБОРАТОРНА РАБОТА No3. Моделиране на бази данни с Erwin

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

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

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

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

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

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

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

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

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

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

Създаване на обект.

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

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

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

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

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

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

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

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

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

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

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

За атрибутите на първичния ключ в раздела Общи на редактора на атрибути трябва да поставите отметка в полето за избор на първичен ключ.
Разделите Дефиниция, Забележка и 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 на диалоговия прозорец Редактор на връзки.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Упражнение

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

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

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

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

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

Контролни въпроси

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

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

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


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

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

Четирите първи нормални форми (по-точно първата, втората, третата и Бойс-Код) са обединени в една група, тъй като техните дефиниции се основават на класическата концепция за функция, дадена на диаграма на релациите и на теоремата на Хийт.

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

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

Нека първо обсъдим възприетия метод за представяне на материала за нормализиране. Ние, естествено, ще изхождаме от теорията на нормализирането, разработена в рамките на релационния модел на данни. Опитът обаче показва, че с такова представяне начинаещите изпитват затруднения да схванат съществената концепция за аномалия, дефинирана като някаква характеристика на „неправилността“ на съпоставянето на концептуалния бизнес модел с модела на базата данни. Ето защо

ще използваме съпоставянето на релационния модел с вече познатия ви модел на същност-връзка и в ER-модела ще изучаваме нормализирането. Това ще донесе семантиката, необходима за справяне с аномалии.

Нека отново помислим за връзките между връзките, за присъединяването на връзки и за външните ключове.

5.1 Връзки и външни ключове

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

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

Връзките между връзките/обектите както в релационния модел, така и в ER диаграмите се формират от ограничение за референтна цялост, наречено "Външен ключ" (FK за кратко).

За да не се създаде фалшива представа за бедността на релационния модел като невъзможност за реализиране на нещо, не забравяйте, че в него връзката n: m е представена чрез две отношения 1: n, че сложните отношения могат да се моделират по различни начини. Дори агрегатите могат по някакъв начин да бъдат представени чрез въвеждане на обекти, които описват техния състав. Такива модели могат да бъдат ефективно внедрени в програма, но най-вероятно ще бъдат неудобни за хората. Възможностите за моделиране на структури от данни в рамките на релационния модел са доста широки, но, разбира се, не безгранични.

Нека обсъдим общ подход към анализа на структурите, който ще бъде анализиран по-нататък на примера на две свързани субекта "Служител" и "Отдел", илюстрирани на фигура 5.1. Вляво е вариант с идентифицираща връзка, вдясно с неидентифицирана.


Ориз. 5.1.Пример за връзки един към много

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

И в двата варианта на схемата всеки служител е назначен към един от отделите. Имаме връзка („към много“ от страната на връзката „Служител“). По отношение на "Служител" не можете да изберете номер на отдел deptno, който не съществува в списъка с отдели (субектът "Отдел"). Един отдел не може да има нито един, един, двама или повече служители.

По отношение на подобен пример (раздел 2.2.7) отбелязахме, че се формира парадоксална ситуация. Директорът е назначен към определен отдел, а ръководителят на този отдел е подчинен на директора и в същото време ще бъде негов ръководител. Но може би отделите са разходни центрове и е решено заплатата на директора да се начисли към разходите на един от отделите. В нашите уроци не трябва да се занимавате с подобни подробности, освен ако, разбира се, не е посочено обратното. Трябва да свикнете, освен всичко друго, да мислите за бизнеса от самото начало, но когато решавате образователни проблеми, не трябва да разширявате задачите, за да анализирате възможните варианти.

Каква е разликата между диаграмите на фигура 5.1? Идентифициращата връзка ви кара да мислите за служител предимно като служител в отдел. Неидентифицираща връзка означава, че принадлежността към отдел е маркирана като нещо второстепенно.

5.2 Видове комуникация. Идентифициращи и неидентифициращи, задължителни и незадължителни връзки

Идентифициращите и неидентифициращите типове връзки (вижте Фигура 5.1) не принадлежат към теорията на релационните бази данни, а към стандарта за моделиране IDEF1X, на който се основава ERwin (известен още като AllFusion Data Modeller).

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

Неидентифицирана връзка се използва за свързване на две силни субекти. Той предава ключа в областта на неключовите атрибути.

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

След като се запознаем с езика SQL в "The SQL Language" с помощта на директно инженерство, ще бъде възможно да генерираме SQL скрипт, който създава фрагмент от схемата на базата данни. Но дори и сега, ако вече сте поне малко запознати с SQL, след това отидете на Инструменти> Инженер за препращане / Генериране на схема и след това щракнете върху бутона Визуализация, за да видите генерирания текст.

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

Въвеждането на петте концепции от по-високо ниво, изброени по-горе, дава език, който отразява по-добре спецификата на задачата и следователно е по-разбираем за разработчика. Това ще ви позволи бързо и без формални трансформации да получите първоначалната схема на релационната база в почти пълна форма (по-късно ще изразим тази идея по-точно: „в третата нормална форма или нормална форма на Бойс-Код“).