Защо още един модел
В релационните БД лежащият отдолу модел е релационният — таблици и операции над тях (релационна алгебра: селекция, проекция, произведение…). Но преди да се създаде физическият модел, базата се проектира с по-абстрактния модел обект-взаимодействие (Entity-Relationship, съкратено ER).
ER моделът е семантичен модел от високо ниво — много по-близък до естествения език от релационния. Той описва кое какво е в базата и обяснява вида на връзките. Данните отново са в таблици; освен тях една БД съдържа и заявки, отчети, форми, процедури, макроси, но данните се съхраняват единствено и само в таблиците, наречени ядро на базата.
Принципи при проектиране
- Всяка БД моделира реално съществуващ процес и реални обекти — физически (хора, машини, коли) или абстрактни (учебни предмети, договори, сметки, абонаменти).
- Всяка БД има конкретна цел — един и същ обект се моделира различно според целта. Автомобил в ИС на застрахователна компания: обем на двигателя, мощност, възраст, изминати километри, цвят… За подземен паркинг: само превозно средство и регистрационен номер.
- Моделът винаги е непълен образ на реалния обект — работата на проектанта е да прецени кои характеристики се отнасят към задачата и кои не (познатото ни ниво на абстракция).
Резултатът от ER моделирането е схема (blueprint), въз основа на която се проектира структурата на базата и функционалността на ИС.
Основни понятия
Свойство
Стойност, представляваща елементарна данна — може да се използва отделно. Свойството има тип, точно както променливите в програмирането.
Обект (Entity)
Нещо конкретно или абстрактно от реалния свят, което представлява интерес за моделираните процеси. Описва се като множество от свойства; всяко проявление с конкретни стойности наричаме екземпляр.
Идентификатор
Специално свойство, което отличава екземплярите един от друг — два екземпляра не може да имат един и същ идентификатор. Може да е просто (ISBN на книга, ЕГН) или сложно (комбинация от имена, дата на раждане и адрес).
Взаимодействие (връзка)
Връзка или отношение върху обектите, които свързва — „клиент има адрес“, „женен за / омъжена за“. Взаимодействието може да има собствени свойства (дата на сключване на брака), но НЕ може да има собствен идентификатор.
Кардиналност
Кардиналност — колко екземпляра на всеки обект могат да участват във взаимодействието:
| Ляво | Дясно | Описание | Пример |
|---|---|---|---|
| 1 | 1 | Едно към едно | Човек и неговото ЕГН |
| 1 | N | Едно към много | Човек и получените висши образования |
| M | N | Много към много | Човек и прочетена от него книга |
- 1:1 — от двете страни стои не повече от един обект: един човек има точно едно ЕГН и едно ЕГН принадлежи на не повече от един човек.
- 1:N — от едната страна един обект, от другата — няколко: човек може да няма висше образование, да има едно или няколко.
- M:N — и от двете страни може да стоят повече от един: човек чете много книги; една книга се чете от много хора (или от никого).
Домейн
Домейн
Съвкупността от всички възможни стойности, които дадено свойство може да притежава.
ER диаграми и означения
Съществените елементи на ER диаграмата:
- Обект — правоъгълник с името му.
- Връзка — линия между два обекта с ромб по средата, в който е името на връзката. Кардиналността се изписва над линиите: 1, M, N.
- Свойство — елипса, свързана с линия към обекта.
- Идентификатор — елипса с подчертано име.
Пример: онлайн магазин. Клиентите купуват стоки; стоките имат цена и производител. Един клиент купува много стоки, една стока се купува от много клиенти (M:N). Един производител произвежда много стоки, но една стока има точно един производител (1:N).
Какво трябва да запомниш
- ER = семантичен модел от високо ниво за ПРОЕКТИРАНЕ на базата.
- Обект = множество от свойства; идентификаторът отличава екземплярите.
- Взаимодействието може да има свойства, но НЕ и собствен идентификатор.
- Кардиналност: 1:1, 1:N, M:N.
- Домейн = всички възможни стойности на свойство — избира се с мисъл за бъдещето.
- Диаграма: правоъгълник = обект, ромб = връзка, елипса = свойство, подчертано = идентификатор.