Проектирование базы данных сложный процесс который ставит своей задачей отобразить предметную область в набор данных и процедур доступа к ним. Принято выделять три этапа проектирования базы данных (см. рис. 2.1) :
инфологического проектирование – получении семантических (смысловых) моделей, отражающих информационное содержание проблемы;
Рис. 2.1. Этапы проектирования баз данных
логическое проектирование рассматривает Каким образом отобразить объекты предметной области в абстрактные объекты модели данных так, чтобы это отображение не противоречило семантике предметной области, и было, по возможности, наилучшим (эффективным, удобным и т.д.);
Физическое проектирование - каким образом, имея в виду особенности конкретной СУБД, расположить данные во внешней памяти, создание каких дополнительных структур (например, индексов) необходимо потребовать и т.д.
В настоящее время все большее распространение приобретают модель типа «Сущность-Связь» (Entity-Relationship - ER-модель). База данных построенные на основе этой модели называют реляционными. Основными понятиями ER-модели являются сущность, связь атрибут.
Сущность (объект) - это реальный или представляемый объект предметной области, информация о котором должна сохраняться и быть доступна. Различают такие понятия как тип сущности и экземпляр сущности. Понятие тип сущности относится к набору однородных предметов, событий, личностей, выступающих как единое целое. Экземпляр сущности относится к конкретной вещи в наборе. Например, сущность – счет-фактура, экземпляр сущности – СФ №15 от 10.10.2003, контрагент ООО «Солнышко» на сумму 37 000 руб. Сущность – клиент, экземпляр сущности – ЧП Иванов.
Атрибут - поименованная характеристика сущности, определяющая его свойства и принимающая значения из некоторого множества значений. Каждый атрибут обеспечивается именем, уникальным в пределах сущности. Например Клиент.Название, Клиент.Юридический_адрес, Клиент.ИНН.
Множество из одного или нескольких атрибутов, значения которых однозначно определяют каждый экземпляр сущности, называются идентификатором (ключом) . Каждая сущность должен иметь хотя бы один идентификатор. Если идентификаторов несколько, один из них выбирается как привилегированный. Например для сущности Клиент идентификатором может служить ИНН, для счет-фактуры – дата и номер.
Атрибуты могут классифицироваться по принадлежности к одному из трех различных типов:
описательные - представляют характеристики, внутренне присущие каждому экземпляру сущности (например, Счет-фактура.Сумма);
указывающие - используются для присвоения имени или обозначения экземпляров сущности (например, Счет-фактура.Номер);
вспомогательные - используются для связи экземпляра одного сущности с экземпляром другого (например, Счет-фактура.ИНН_Клиента).
Представление сущности: Клиент ( ИНН_Клиента , название_клиента, юр_адрес, телефон, контактное_лицо);
Клиент |
* ИНН клиента |
|
|
|
|
Рис. 2.2. Графическое представление сущности
Правила атрибутов:
Один экземпляр сущности имеет одно единственное значение для каждого атрибута в любое данное время. В табличной интерпретации это правило требует, чтобы существовал один и только один элемент данных для каждых строки и столбца. Это делает невозможным появление незаполненных ячеек и ячеек с группой значений;
Атрибут не должен содержать никакой внутренней структуры (например название банка, БИК банка и номер расчетного счета не могут быть в одном атрибуте);
Когда сущность имеет составной идентификатор, каждый атрибут, не являющийся частью идентификатора, представляет характеристику всей сущности, а не ее части, а тем более не характеристику чего-либо другого (например, Перемещение ( Склад1 , Склад2 , материал, количество) – атрибуты материал и количество указывает количество перемещаемого, а не количество хранимого на каком либо складе складе);
Каждый атрибут, не являющийся частью идентификатора, представляет характеристику экземпляра, указанного идентификатором, а не характеристику некоторого другого атрибута - неидентификатора.
Связь (Relationship) - это поименованная графически изображаемая ассоциация, устанавливаемая между сущностями и представляющая собой абстракцию набора отношений, которые систематически возникают между различными видами предметов в реальном мире. При анализе связей между сущностями могут иметь место бинарные связи (между двумя сущностями или между сущностью и ей же самой - рекурсивная связь), в общем случае - n-арные связи. В ER-диаграммах связь обозначается направленными ребрами с соответствующими надписями (нотация IDEF1). Среди бинарных связей существуют три фундаментальных вида связи: один к одному (1:1), один ко многим (1:M), многие ко многим (M:N).
Связь один к одному (1:1) существует, когда один экземпляр одной сущности связан с единственным экземпляром другой сущности. Например Сущность Подразделение – сущность Руководитель (см. рис. 2.3).
Рис. 2.3. Связь один к одному
Связь один ко многим (1:M) существует, когда один экземпляр одной сущности связан с одним или более экземпляром другой сущности и каждый экземпляр второй сущности связан только с одним экземпляром первой сущности например отгрузка – клиент (см. рис. 2.4).
Рис. 2.4. Связь один ко многим
Связь многие ко многим (М:N) существует, когда один экземпляр одной сущности связан с одним или более экземпляром другой сущности и каждый экземпляр второй сущности связан с одним или более экземпляром первой сущности (см. рис. 2.5);
Рис. 2.5. Связь многие ко многим