Лекция: Моделирование данных. Метод Баркера
Метод Баркера можно пояснить на примере моделирования данных компании по торговле автомобилями. Этот пример достаточно универсален, в качестве упражнения можно на основе его исходных данных построить ERD с использованием других нотаций. Исходными данными для построения ERD являются результаты интервью, проведенного с персоналом компании, выдержки из которого приведены ниже.
Главный менеджер должен знать, сколько заплачено за машины и каковы накладные расходы. Обладая этой информацией, он может установить нижнюю цену, за которую мог бы продать данный экземпляр. Кроме того, он несет ответственность за продавцов и ему нужно знать, кто, что продает и сколько машин продал каждый из них.
Продавец: ему нужно знать, какую цену запрашивать и какова нижняя цена, за которую можно совершить сделку. Ему нужна основная информация о машинах: год выпуска, марка, модель и т.п. Администратор:его задача сводится к составлению контрактов, для чего нужна информация о покупателе, автомашине и продавце. Первый шаг моделирования — извлечение информации из интервью и выделение сущностей. Сущности, которые могут быть идентифицированы главным менеджером, — это автомашины и продавцы. Продавцу важны автомашины и связанные с их продажей данные. Для администратора важны покупатели, автомашины, продавцы и контракты. Второй шаг моделирования – идентификация связей. Связь — это ассоциация между сущностями, при которой, как правило, каждый экземпляр одной сущности, называемой родительской сущностью, ассоциирован с произвольным (в том числе нулевым) количеством экземпляров второй сущности, называемой сущностью-потомком,а каждый экземпляр сущности-потомка ассоциирован в точности с одним экземпляром сущности-родителя. Таким образом, экземпляр сущности-потомка может существовать только при существовании сущности-родителя.
Имя каждой связи между двумя данными сущностями должно быть уникальным, но имена связей в модели не обязаны быть уникальными.
Связь продавца с контрактом может быть выражена следующим образом: продавец может получить вознаграждение за один контракт или более; контракт должен быть инициирован ровно одним продавцом.
Третий шаг моделирования — идентификация атрибутов. Атрибут может быть либо обязательным, либо необязательным. Обязательность означает, что атрибут не может принимать неопределенных значений. Атрибут может быть либо описательным (т. е. обычным дескриптором сущности), либо входить в состав уникального идентификатора (первичного ключа). Уникальный идентификатор— это атрибут или совокупность атрибутов и/или связей, предназначенная для уникальной идентификации каждого экземпляра данного типа сущности. В случае полной идентификации каждый экземпляр данного типа сущности полностью идентифицируется своими собственными ключевыми атрибутами, в противном случае в его идентификации участвуют также атрибуты другой сущности-родителя.
Каждая сущность должна обладать хотя бы одним возможным ключом. Возможный ключ сущности– это один или несколько атрибутов, чьи значения однозначно определяют каждый экземпляр сущности. При существовании нескольких возможных ключей один из них обозначается в качестве первичного ключа, а остальные — как альтернативные ключи.
Помимо перечисленных основных конструкций модель данных может содержать ряд дополнительных.
Супертипы и подтипы:одна сущность является обобщающим понятием для группы подобных сущностей. Взаимноисключающие связи:каждый экземпляр сущности участвует только в одной связи из группы взаимно исключающих связей.
Рекурсивная связь:сущность может быть связана сама с собой.
Неперемещаемые связи:экземпляр сущности не может быть перенесен из одного экземпляра связи в другой.