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