sonyps4.ru

Видове връзки в erwin. Логически и физически модели в erwin data modeler

Лабораторна работа №4. Дефиниране на връзки между обекти в ERwin

Както беше отбелязано в Упражнение 3, за да изградите логически модел на данни, първо трябва да дефинирате набор от обекти и да дефинирате връзките между тях. В упражнение 3 беше създадена диаграма, съдържаща четири обекта (Фигура 4.1). Методът за определяне на връзката между тях ще разгледаме в настоящото упражнение.

https://pandia.ru/text/78/177/images/image002_182.gif" width="123" height="128 src=">има глаголна фраза, генерирана по подразбиране - „R/1“ (Фигура 4.2 ).

Фигура 4.2 - Неидентифицираща връзка

Стъпка 3.Отидете на ниво атрибут и забележете, че обектът „Класна стая“ е добавил атрибут на първичен ключ от обекта „Клас“ и е маркиран с буквите „FK“. За даден атрибут се казва, че е "мигрирал", а FK (чужд ключ) означава, че атрибутът е част от външен ключ (Фигура 4.3). За връзка на идентичност външният ключ винаги е включен в първичния ключ на детето

образувание, за неидентифициране не е включено.

Фигура 4.3 - Миграция на атрибути

Стъпка 4.Задайте глаголна фраза към връзката. За да направите това, изберете връзката, като щракнете върху нея с показалеца на мишката, след това щракнете с десния бутон и изберете „Свойства на връзката...“ в контекстното меню.

Общият изглед на прозореца на редактора на връзки е показан на Фигура 4.4.

Бази данни" href="/text/category/bazi_dannih/" rel="bookmark">бази данни. В нашия пример, тъй като при анализа на предметната област открихме, че учебното място не може да съществува отделно от класа, задайте този ne - ключ на позиция „Без нулеви стойности“ Това налага условието, че съществуващ екземпляр на работна среда трябва винаги да има препратка към класа, към който принадлежи.

Раздел " дефиниция"(дефиниция).

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

Раздел „Име на роля“.

Името на ролята (rolename) е допълнителна характеристика, която може да се използва

присвоен на атрибута на мигриращия първичен ключ (Фигура 4.5).

https://pandia.ru/text/78/177/images/image006_79.gif" width="358" height="221 src=">

Фигура 4.6 – Контекстно меню на диаграма за показване на атрибути на мигриращи обекти

Раздел Действия на RI

Разделът е предназначен за настройка на параметрите на референтната цялост на проекта.

обвързваема база данни (Фигура 4.7).

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

Има следните типове действия или правила, дефинирани в логическия модел:

1 ОГРАНИЧЕНИЕ - забрана за изтриване, вмъкване или промяна на екземпляр на обект

2 КАСКАДА - при изтриване на екземпляр на родителски обект, изтриване на всички екземпляри на дъщерния обект, които препращат към изтрития родителски екземпляр.

3 SET NULL - когато екземпляр на родителския обект се изтрие, на атрибутите на външния ключ на всички екземпляри на дъщерния обект се присвоява стойност NULL.

4 SET DEFAULT - същото като в предишния случай, само стойността по подразбиране се присвоява вместо стойността NULL.

5 НЯМА - не се предприемат действия.

Фигура 4.7 – Раздел „RI Действия“ (Настройки за референтна цялост)

Тези правила се прилагат за вмъкване, изтриване и модифициране на екземпляри на родителски и дъщерни обекти. По този начин всяка връзка трябва да има набор от шест правила, които се въвеждат в полета, обединени от общото заглавие „RI действия“. Когато добавя връзка към диаграма, ERwin по подразбиране задава набор от правила за нея, които могат да бъдат редактирани в диалоговия прозорец „Model Properties“ в раздела „RI Defaults“ (Фигура 4.8), извиквайки

като изберете командата „Модел“ сървър от главното меню и след това под-

Команди "Свойства на модела" (Фигура 4.9).

https://pandia.ru/text/78/177/images/image009_57.gif" width="227" height="289 src=">

Фигура 4.9 – Процедура за извикване на диалоговия прозорец „Свойства на модела“.

Правилата, присвоени на връзка по подразбиране, могат да бъдат променени чрез избиране на желаната стойност от падащия списък (вижте Фигура 4.8). Когато щракнете върху бутона „Re-bind“, новите настройки по подразбиране се прехвърлят към текущия режим.

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

Всеки тип комуникация има, в зависимост от типа действие, свой собствен набор от валидни правила, показани в таблица 4.2.

Таблица 4.2 - Набор от валидни правила за различни видове връзки

действия

Тип връзка

Идентификация

Неидентифициран

неидентифициране, нули

Неидентифициран

идентифициране (Неидентифициране, No

Връзка

(изтриване на дъщерен обект)

CASCADE, NONE SET NULL,

КАСКАДА, НЯМА ЗАДАДЕНО ПО ПОДРАЗБИРАНЕ

(вмъкнете дъщерен обект)

CASCADE, NONE SET NULL,

КАСКАДА, НЯМА ЗАДАДЕНО ПО ПОДРАЗБИРАНЕ

(промяна на дъщерен обект)

КАСКАДА, НЯМА НАБОР

NULL, SET DE - FAULT

КАСКАДА, N6NE КОМПЛЕКТ

(изтриване на родителски обект)

КАСКАДА, НЯМА НАБОР

КАСКАДА, НЯМА НАБОР

(вмъкнете родителски обект)

CASCADE, NONE SET NULL,

КАСКАДА. НЯМА ЗАДАДЕНО ПО ПОДРАЗБИРАНЕ

(промяна на родителски обект)

КАСКАДА, НЯМА НАБОР

КАСКАДА, НЯМА НАБОР


Настройките по подразбиране за връзката клас - място забраняват вмъкването и промяната на екземпляр на дъщерен обект, както и изтриването и промяната на родителския обект. Това означава, че изтриването не е разрешено

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

Раздел „UDP“ (параметри, задавани от потребителя)

Отметка - UDP, подобно на предишните диаграмни обекти, ви позволява да присвоите свой собствен набор от потребителски свойства на връзката.

И така, създадохме неидентифицираща връзка между обектите „Клас“ и

„Учебно място“ с условие „Без нули“. Очевидно трябва да съществува връзка от същия тип между обектите „Тип оборудване“ и „Единица оборудване“, тъй като част от оборудването трябва да има тип. Добавете тази връзка към диаграмата, като използвате същите стъпки като в предишния случай. Извикайте редактора на връзки и променете глаголната фраза на „описва“, оставяйки останалите настройки на връзката непроменени. Моля, обърнете внимание, че атрибутът „код на типа оборудване“ е мигрирал към неключовите атрибути на обекта „Място за обучение“ (Фигура 4.10).

Фигура 4.10 – Атрибутът „код на типа оборудване“ е мигрирал към неключовите атрибути на обекта „Място за обучение“

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

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

“Единица техника” - дъщерно дружество. В редактора на връзки променете глаголната фраза „родител към дете“ на „състои се от“. Има два типа неидентифициращи връзки - такива, които позволяват NULL стойности (Nulls Allowed) и такива, които не позволяват (No Nulls). По подразбиране е избран сортът „Разрешени нулеви стойности“, оставете това непроменено. Тази настройка означава, че за екземпляр на обекта „Equipment Unit“ полетата за външен ключ могат да имат нулева стойност, т.е.

няма индикация за копие на “Учебно място”. Така едно оборудване може да съществува „само по себе си“.

След установяване на връзки, диаграмата на ниво обект ще изглежда така:

https://pandia.ru/text/78/177/images/image012_32.gif" width="556" height="327 src=">връзки, показани на фигура 4.12.

Фигура 4.12 - Илюстрация на връзки в нотация IDEF1X

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

плътност - за да направите това, изберете елемента в контекстното меню на диаграмата

„Показване на връзка“ и подточка „Референтна цялост“ ( стъпка 6. ).

Азбука" href="/text/category/alfavit/" rel="bookmark">азбучни групи, разделени със символа на двоеточие „:“. Първият знак показва действието, за което се прилага правилото за цялост: D - изтриване, I - вмъкване (вмъкване), U - промяна (актуализация).

Втората група обозначава правилото: R - RESTRICT, C - CASCADE, SN - SET NULL, SD - SET DEFAULT. Така забраната за изтриване се обозначава с D:R, а настройката на NULL при модификация се обозначава с U:SN. Обозначенията се поставят в родителския или дъщерния край на връзката, в зависимост от това към кой обект се отнасят. С активирани настройки за референтна цялост диаграмата е

изглежда както е показано на фигура 4.14.

Фигура 4.14 - ER диаграма с активирани настройки за референтна цялост

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

Стъпка 7В раздела „Ниво на обект“ запазете модела, например под името

it Lab_4_Petrov. er1.

Стъпка 8. Изпълнете индивидуална задача за идентифициране на връзки между обекти.

функции в ERwin за определената предметна област (вижте таблица 3.4).

1. Резултати от изпълнение на стъпки 1 – 7 от програмата на урока.

2. Резултати от изпълнение на индивидуална задача.

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

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

2. Каква връзка между обектите се нарича неидентифицираща?

3. Какво е физически и логически модел на данни?

4. Каква връзка между обектите се нарича идентифицираща?

5. Обяснете значението на твърдението, че някой атрибут е „мигрирал“?

6. Какво означава символът "FK" на ERwin диаграма?

7. Какви функции има редакторът на връзки?

8. Какво е представянето на връзките в нотацията IDEF1X?

9. Как да посочите референтна цялост в диаграма

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

визуална задача?

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

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

Ориз. 5.3.

Вторият е Model Explorer. Той съдържа три раздела: Модел, Тематични области и Домейни. Най-често използваният раздел в Model Explorer е разделът Domains или Model (който съдържа всички обекти и модели). В Domains се показват домейните, а в Subject Areas - показаните области (фиг. 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.Слой обект на модел на данни

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

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

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

· дъщерен (зависим) субект;

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

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

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

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

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

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

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

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

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

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

Ще използваме картографирането от релационния модел към модела на обект-връзка, който вече познавате, и ще изучаваме нормализирането в 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 в "SQL Language", използвайки директно инженерство, ще бъде възможно да генерираме SQL скрипт, който създава фрагмент от схемата на базата данни. Но дори и сега, ако вече сте поне малко запознати с SQL, тогава като отидете на Инструменти > Генериране на преден инженер/схема и след това щракнете върху бутона Преглед, вижте генерирания текст.

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

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

Предишните глави разгледаха най-често срещания тип връзка – идентифициране на връзки – и показаха как спешната помощ

печелямигрира ключове през тези връзки.

В тази глава ще научите как да:

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

Управление на външни ключове

Когато създавате диаграма, въпреки че може да искате да добавите ключови атрибути към обекта, когато го създавате, ER

печеляможе да свърши по-голямата част от тази работа вместо вас, ако му позволите. Когато създадете връзка между два обекта, ERпечеляавтоматично мигрира ключовите атрибути на родителския обект към дъщерния обект, където те стават външни ключове. Тъй като E.R.печеляподдържа автоматично мигриране на ключове, препоръчваме ви да добавите първични ключове към независим обект веднага щом бъде създаден, но не се притеснявайте за ключове за дъщерни обекти. След като създадете връзка и ERпечеляавтоматично ще мигрира външните ключове, върнете се и добавете собственключове към дъщерните обекти на диаграмата.

За да улесните дизайна на базата данни, ER

печеляви позволява да зададете режима на уникален ключ, който може да се използва, за да ви предупреди за създаване на атрибут, който може автоматично да мигрира през връзката, или да ви попречи да създавате такива атрибути. Освен това, ако изтриете връзка, ERпечеляавтоматично премахва съответните външни ключове от дъщерни обекти. Вижте Глава 11, Документиране на правилатараздел „Гарантиране, че имената на обекти и атрибути са уникални.“

Как да създадете външни ключове

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

За да видите автоматичната миграция на външни ключове,

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

Как да видите атрибутите на външния ключ

1. Щракнете с десния бутон върху ствола на връзката - Ще влезете в менюто за връзка.

2. Дайте командата "Relationship", за да влезете в редактора на Relationship.

Задаване на режими на наследяване на атрибути

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

В този диалогов прозорец можете да зададете три режима. Режимът по подразбиране е „Без наследяване“ и можете да го промените на „Пълно наследяване“ или „Ограничено наследяване“, като щракнете върху съответния бутон и след това щракнете върху „OK“, за да запазите новия режим.

Как да зададете режим на наследяване на атрибути

1. Дайте командата "Attribute Inheritance..." от менюто Option.

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

„Пълно наследяване“ – дефинициите на атрибутите на първичния ключ мигрират към външния ключ за всички нови и вече създадени връзки в текущата диаграма.

„Ограничено наследяване“ – дефинициите на атрибутите на първичния ключ мигрират към външния ключ за всички нови връзки, но това не се отнася за съществуващите връзки в текущата диаграма.

„Без наследяване“ – миграцията на дефиниции на атрибути е забранена за всички връзки в текущата диаграма. Това е режимът по подразбиране.

Уточняване на неидентифициращи връзки

Линк за идентификация

е връзка, която добавя атрибути за самоличност към дъщерен обект чрез мигриране на ключовете на родителския субект в областта на ключовите атрибути на дъщерния обект и по този начин прави дъщерния обект зависимот родителя в смисъл на тяхната идентичност. Например, когато атрибутът филм-вцепененспешна помощ мигрира от обекта MOVIE към MOVIE-COPY в диаграмата MOVIES.ER1, тогава всеки екземпляр на MOVIE-COPY също зависи отфилм-вцепененспешно отделение и от movie-copy-numbER, които го дефинират еднозначно (нито един от тези два атрибута не може сам по себе си еднозначно да дефинира конкретно копие на филм).

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

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

Фигурата по-долу показва как са изобразени в ER

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

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

Как да промените типа връзка

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

2. Дайте командата "Relationship" в менюто Editor, за да влезете в редактора на Relationship.

3. Щракнете върху желания бутон в прозореца Тип връзка (Идентифициране, Неидентифициращо).

4. Щракнете върху „OK“, за да потвърдите промените. спешна помощ

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

Рекурсивна комуникация в

спешна помощ win автоматично се присвоява типът Неидентифициращ. Не може да се промени.

Да разрешите или да не разрешите нулеви стойности?

Когато рисувате неидентифицираща връзка, трябва да решите дали атрибутите на външния ключ, наследени от родителя, могат да бъдат нула или не. По подразбиране неидентифицираща връзка е зададена на Разрешени нулеви стойности, което означава, че дъщерен обект може да съществува без родителски обект и връзката се нарича незадължителна. „Без нули“ означава това съществуването на дъщерен обект зависи от родителя,и връзката се извиква задължителен.В случай на връзка Nulls Allowed в родителския край на неидентифициращата ER връзка

печеляпоставя знак с диамант.

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

Вижте Ръководство за спешни методи

win Ръководство за методи, Глава 3, „Преглед на езика“, Разд. „Идентифициращи и неидентифициращи връзки“.

По подразбиране за неидентифицираща асоциация е

Режим "Позволени нулеви стойности", т.е. NULL стойности за външни ключове


Зареждане...