ERM (модел на същността и връзката)

Лични инструменти

ERM английскимодел на същност-връзка-Модел на същност-връзка (ER-модел)) - модел на данни, който ви позволява да опишете концептуалните схеми на предметната област. ER моделът се използва при проектиране на база данни от високо ниво (концептуален). С негова помощ можете да маркирате ключовите обекти и да посочите връзките, които могат да бъдат установени между тези обекти. По време на проектирането на база данни ER моделът се трансформира в специфична схема на база данни въз основа на избрания модел на данни (релационен, обектен, мрежов и т.н.). ER-моделът е формална конструкция, която сама по себе си не предписва никакви графични средства за нейното визуализиране. Предложена е диаграма на обект-връзка (ERD) като стандартна графична нотация, с която да се визуализира ER модел. Понятията ER модел и ER диаграма често погрешно не се разграничават, въпреки че са предложени други графични обозначения за визуализиране на ER модели (вижте по-долу).

Съдържание

История на създаването

Моделът същност-връзка е предложен през 1976 г. от Питър Пин-Шен Чен, американски професор по компютърни науки в Държавния университет на Луизиана.

Нотации (графични диаграми)

Питър Чен нотация

Прост MMORPG ER модел, използващ нотацията на Питър Чен. Наборите от обекти са показани като правоъгълници, наборите от отношения са показани като диаманти. Ако даден обект участва във връзка, той е свързан с линия. Ако връзката е незадължителна, тогава линията е пунктирана. Атрибутите се показват като овали и са свързани с линия къмедно отношение или един обект.

Пачи крак

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

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

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

Атрибутитена обект се записват вътре в правоъгълник, изобразяващ обект и се изразяват като съществително име в единствено число (възможно с уточняващи думи). Сред атрибутите се откроява ключът на обекта - неизлишен набор от атрибути, чиито стойности в съвкупността са уникални за всеки екземпляр на обекта. [1]

Елементи на модела

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

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

Набор от обекти(набор от обекти) - набор от обекти от същия тип (с еднакви свойства). Примери: всички хора, фирми, празници и др. Наборите от обекти не е необходимо да се разделят. Например, обект, принадлежащ към набора MEN, също принадлежи към набора PEOPLE.

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

помислете за набор от служители на определено предприятие. Всеки от тях може да бъде описан с помощта на характеристиките на персоналния номер, име, възраст. Следователно обектът СЛУЖИТЕЛ има атрибутите НОМЕР НА ЛИЦЕ, ИМЕ, ВЪЗРАСТ. Използвайки нотация на Pascal, този факт може да бъде представен като:

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

Например отделите, на които е подразделено едно предприятие и в които работят служителите, могат да бъдат описани като ОТДЕЛ(НОМЕР_ОТДЕЛ, ИМЕ).

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

В споменатата статия от P. Chen, атрибутът се дефинира като функция, която преобразува набор от обекти в набор от стойности или в декартов продукт от набори от стойности. Така че атрибутът AGE произвеждасъпоставяне към набора от стойности (домейн) NUM_YEARS. Атрибутът FIRST NAME преобразува в декартовото произведение наборите от стойности FIRST NAME, LAST NAME и PATRONYMID.

Оттук се дефинираключът на обекта- група от атрибути, така че картографирането на набор от обекти към съответната група набори от стойности е картографиране едно към едно. С други думи: ключът на обект е един или повече атрибути, които уникално идентифицират даден обект. В нашия пример ключът на обекта EMPLOYEE е атрибутът PERSONNEL_NUMBER (разбира се, само ако всички персонални номера в предприятието са уникални).

Връзкае асоциация, установена между множество обекти. Примери:

  • тъй като всеки служител работи в отдел, съществува връзка "работи в" или ОТДЕЛ-РАБОТИЛ между субектите СЛУЖИТЕЛ и ОТДЕЛ;
  • тъй като един от служителите на отдела е негов началник, то между субектите СЛУЖИТЕЛ и ОТДЕЛ съществува връзка "управлява" или ОТДЕЛ-МЕНИДЖЪР;
  • може също така да има връзки между обекти от същия тип, например връзка PARENT-SCEDEN между два обекта PERSON;

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

Една връзка също може да има атрибути. Например, за връзка ОТДЕЛ-РАБОТИТ, можете да зададете атрибута LENGTH_WORK_IN_DEPARTMENT.

Ролята на обекта във връзката- функцията, която обектът изпълнява в тази връзка. Например, във връзка PARENT-CHILD, обектите PERSON могат да имат ролите "parent" и "child".Указването на роли в модела обект-връзка не е задължително и служи за изясняване на семантиката на връзката.

Набор от релациие връзка между n (където n е поне 2) обекта, всеки от които принадлежи към някакъв набор от обекти.

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

В случай на n=2, т.е. когато една връзка съчетава две единици, тя се нарича двоична. Доказано е, че n-аричен набор от връзки (n> 2) винаги може да бъде заменен с набор от двоични, но първите отразяват по-добре семантиката на предметната област.

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

Едно към едно (1 : 1)

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

Друга важна характеристика на една връзка, освен нейната степен, екласът на принадлежности нейните съставни единици, иликардиналносттана връзката. Тъй като всеки отдел трябваза да бъде лидер, тогава всяко образувание "ДЪЛБОКА" трябва задължително да съответства на образуванието "СЛУЖИТЕЛ". Въпреки това, не всеки служител е ръководител на отдел, следователно, в тази връзка, не всеки обект СЛУЖИТЕЛ има обект ОТДЕЛ, свързан с него. По този начин се казва, че обектът „СЛУЖИТЕЛ“ има задължителен клас на членство (този факт също се посочва чрез посочване на интервала на броя на възможните появявания на обекта във връзката, в този случай той е 1.1), а обектът „DEEP“ има незадължителен клас на членство (0.1). Сега можем да опишем тази връзка като 0,1:1,1. По-нататък кардиналността на бинарните връзки от степен 1 ​​ще бъде означена по следния начин:

Едно към много (1:n)

В този случай обект с една роля може да съответства на произволен брой обекти с различна роля. Това е отношението ОТДЕЛ-СЛУЖИТЕЛ. Всеки отдел може да има произволен брой служители, но един служител може да работи само в един отдел. Графично степента на връзка n се показва като "дървовидна" линия, както е направено на следващата фигура.

връзката

Тази фигура допълнително илюстрира факта, че множество набори от връзки могат да бъдат дефинирани между два обекта. Тук също е необходимо да се вземе предвид членският клас на субектите. Всеки служител трябва да работи в някакъв отдел, но не всеки отдел (например новосформиран) трябва да включва поне един служител. Следователно, обектът "ОТДЕЛ" има задължителен, а обектът "СЛУЖИТЕЛ" незадължителен клас на членство. Мощността на бинарните връзки от степен n ще бъде означена, както следва:

Много към едно (n: 1)

Тази връзка е подобна на картографиране 1:n. Да предположим, че предприятието, което разглеждаме, изгражда дейността си въз основа на договори, сключени склиенти. Този факт се показва в модела на връзката обект с помощта на връзката ДОГОВОР-КЛИЕНТ, която съчетава обектите ДОГОВОР(НОМЕР, ДАТА, СУМА) и КЛИЕНТ(ИМЕ, АДРЕС). Тъй като с един клиент може да се сключи повече от един договор, връзката ДОГОВОР-КЛИЕНТ между тези субекти ще има степен n : 1.

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

много-към-много (n:n)

В този случай всеки от асоциираните обекти може да бъде представен от произволен брой екземпляри. Да предположим, че в предприятието, което разглеждаме, за изпълнението на всеки договор се създава работна група, която включва служители от различни отдели. Тъй като всеки служител може да бъде член на няколко (включително нито една) работни групи и всяка група трябва да включва поне един служител, връзката между обектите EMPLOYEE и WORK_GROUP има степен n: n.

Ако съществуването на обект x зависи от съществуването на обект y, тогава x се наричазависим обект(понякога обектът x се нарича "слаб", а "субектът" y се нарича силен). Като пример, разгледайте връзката между описаните по-горе обекти WORK_TEAM и CONTRACT. Работната група се създава едва след подписване на договора с клиента и престава да съществува след приключване на договора. По този начин обектът WORK_TEAM е зависим от обекта CONTRACT. Зависим обект ще бъде обозначен с двоен правоъгълник, а връзката му със силен обект с линия със стрелка:

Обърнете внимание, че кардиналността на връзката за силен обект винаги еще бъде (1,1). Класът на членство и степента на връзка за зависим субект могат да бъдат всякакви. Да предположим, например, че предприятието, което разглеждаме, използва няколко банкови заеми, които са представени от набора от обекти CREDIT(CONTRACT_NUMBER, AMOUNT, Maturity, BANK). Всеки заем трябва да подлежи на лихви и погасителни плащания. Този факт е представен от набора от обекти ПЛАЩАНЕ(ДАТА, СУМА) и набора за връзка "дължимо до". В случай, че планиран заем бъде анулиран, информацията за него трябва да бъде изтрита от базата данни. Съответно цялата информация за планираните плащания по този заем също трябва да бъде изтрита. По този начин обектът ПЛАЩАНЕ зависи от обекта КРЕДИТ. [2]

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

Има много инструменти за работа с ER модели, ето някои от тях: