Композитные объекты
Раздел: Моделирование данныхКомпозитный объект (composite object) — это семантический объект, содержащий один или несколько многозначных, простых или групповых атрибутов, но не имеющий объектных атрибутов.
Строка расходов не моделируется как самостоятельный семантический объект, а вводится как атрибут объекта СЧЕТ_ИЗ_0ТЕЛЯ. Такая организация оправдана тем, что гостиница не рассматривает каждую строку расходов в счете клиента как нечто отдельное, и строки расходов не имеют собственных идентификаторов. Служащие не вводят данные в строку расходов иначе как в контексте счета. Сначала служащий вводит данные для счета № 1234, а затем, в контексте данного счета, вводит суммы. Бывает и так, что служащий берет уже существующий счет и вносит в него дополнительные расходы.
Минимальное кардинальное число атрибута СтрокаРасходов равно 0, что означает, что объект СЧЕТ_ИЗ_0ТЕЛЯ может существовать без единой строки расходов. Это позволяет открывать счет в тот момент, когда клиент вселяется в гостиницу, и до того, как появятся какие-либо расходы. Если бы минимальное кардинальное число равнялось 1, то нельзя было бы открыть счет, прежде чем будет начислена хотя бы одна сумма. Решение об этом должно приниматься в свете имеющегося делового регламента. Политика отеля может заключаться в том, чтобы не открывать счет, пока не будут начислены какие-либо расходы. В таком случае минимальное кардинальное число атрибута СтрокаРасходов должно равняться 1.