Работа с базой данных начинается с построения модели предметной области. Наиболее распространенной является ER-модель (entity-relationship model) – модель «Сущность-связь».
Для построения ER-модели на практике будем использовать простую систему обозначений, предложенную Питером Ченом (обозначения, встречающиеся в разных источниках, могут несколько отличаться от нижеприведенных).
ER-модели можно просто рисовать на листочке бумаги, а также можно использовать программу ERModeler, разработанную одним из авторов специально для данного курса. В пособии приводятся примеры моделей, выполненные с помощью этой программы.
Ключевой атрибут (атрибут, входящий в первичный ключ)
Связь
Работает
Первичный ключ (primary key) – это атрибут или группа атрибутов, однозначно идентифицирующих объект.
Первичный ключ может состоять из нескольких атрибутов, тогда подчеркивается каждый из них.
Объект и его атрибуты соединяются ненаправленными дугами.
Связи между объектами могут быть 3-х типов:
Один – к одному. Этот тип связи означает, что каждому объекту первого вида соответствует не более одного объекта второго вида, и наоборот.
Например: сотрудник может руководить только одним отделом, и у каждого отдела есть только один руководитель.
Один – ко многим (или в обратную сторонуМногие – кодному). Этот тип связи означает, что каждому объекту первого вида может соответствовать более одного объекта второго вида, но каждому объекту второго вида соответствует не более одного объекта первого вида.
Например: в каждом отделе может быть множество сотрудников, но каждый сотрудник работает только в одном отделе.
Многие – ко многим.Этот тип связи означает, что каждому объекту первого вида может соответствовать более одного объекта второго вида, и наоборот. У этого типа связи иногда бывают собственные атрибуты.
Например: каждый счет может включать множество товаров, и каждый товар может входить в разные счета.
Связь может соединять сущность саму с собой, например:
Иногда используют такое понятие, как слабая сущность. Это сущность, которая не может быть однозначно идентифицирована с помощью собственных атрибутов, а только через связь с другой сущностью.
Пусть, например, номер сотрудника является уникальным только в пределах отдела, т.е. в разных отделах могут быть сотрудники с одинаковыми номерами. Уникальной в данном случае будет комбинация атрибутов «НомерСотрудника, НомерОтдела». Сущность «Сотрудник» является слабой.
На схеме слабые сущности и их идентифицирующие связи собозначаются двойными линиями.
Слабая сущность
Связь слабой сущности
Иногда для более удобной классификации используются так называемые подтипы сущностей.Ихобозначают с помощью треугольника, направленного от подтипа к надтипу. Этот треугольник может сопровождаться надписью «есть» или «is a» (т.е., «является»).
Пусть, например, среди контрагентов могут быть как физические, так и юридические лица. Поскольку они имеют разные атрибуты, то удобно создать для них подтипы.
Сущность «Контрагент» является надтипом для своих подтипов. Обратите внимание, что у подтипов обычно не бывает собственных первичных ключей.