Как научиться проектировать базы данных и остаться в живых - страница 3

Шрифт
Интервал



Свойства, которыми описывается сущность, принято называть атрибутами сущности.


Итак, мы выделили сущность «Врач» с атрибутами «Имя», «Специальность», «Категория» и «Стаж». А Иван Иванович и Анастасия Павловна являются экземплярами сущности «Врач», для которых атрибуты принимают уже конкретные значения.

Графически обычно сущность изображают в прямоугольнике, а атрибуты – в эллипсах, которые соединены с прямоугольником линиями.


Рис.1 Сущность «Врач»


Самое трудное в проектировании увидеть эти самые сущности. Давайте продолжим тренироваться на примере поликлиники. С врачами разобрались. А «Пациент» – это сущность? Как это выяснить? Очень просто. Задаем два вопроса и отвечаем на них:

– Реальных пациентов в поликлинике много или один? – Много. Следовательно, «пациенты» являются группой объектов.

– Разные пациенты описываются одинаковыми свойствами? – Да. У всех пациентов есть «Фамилия», «Дата рождения», «Адрес».

Следовательно, понятие «Пациент» полностью соответствует определению сущности.


Рис.2 Сущность «Пациент»


А является ли сущностью «Регистратура»? Снова задаем вопрос:

– Реальных регистратур в поликлинике много или одна? – Одна. Следовательно, «Регистратура» не является сущностью, потому что нет группы объектов. Второй вопрос можно уже не задавать.

А чем же тогда является «Регистратура»? Ведь такой объект в поликлинике есть, значит, он должен как-то отражаться в базе данных. Регистратура – это экземпляр сущности «Подразделение». Проверим эту гипотезу:

– Подразделений в поликлинике много? – Много. И регистратура – одно из них. А есть еще «Администрация», «Терапия», «Дневной стационар» и др. Следовательно, мы имеем группу объектов.