Базы данных

Большинство классов


Более полное описание класса сущности содержит его имя, описание и список его атрибутов. Атрибуты нескольких классов сущностей информационной системы компании BigHit Video. Атрибуты были определены в 2.2. Дополнительное описание атрибутов и задание ограничений приводят к ограничению допустимых значений атрибутов определенной сущности или всех сущностей класса. Некоторые атрибуты описываются словами key, not null, derived. Условие not null требует, чтобы атрибут обязательно был заполнен, т.е. не оставался пустым. Derived означает, что значение этого атрибута не хранится в базе данных, а является производным, т.е. рассчитывается на основании другой информации.

Большинство классов сущностей имеют один или несколько атрибутов, образующих ключ (key) класса. Ключ сущности уникальным образом идентифицирует ее среди всех сущностей класса. Каждая сущность класса должна иметь уникальное значение ключа. Иначе говоря, на значения ключевых атрибутов налагается ограничение, не допускающее, чтобы две разные сущности имели одинаковые значения ключа. Например, атрибут ssn класса Employee является простым (состоящим из одного атрибута) ключом этого класса. Никакие два служащих не могут иметь одинаковые значения атрибута ssn. Это ограничение отражает тот факт, что номера полисов социального страхования уникальны. Поскольку две сущности служащих представляют двух разных людей, а разные люди имеют разные номера социального страхования, то атрибут ssn является естественным ключом для класса Employee.

В качестве ключа для класса Customer был создан искусственный атрибут accountld, поскольку ни для какого другого атрибута сущности клиента невозможно гарантировать его уникальность. Декларирование ограничения ключа (key constraint) для атрибута указывает, что информационная система должна гарантировать уникальность значений этого атрибута среда, сущностей класса. Попытка добавить запись о новом клиенте с таким же значением атрибута accounld, как у другого клиента, должна быть запрещена.

В некоторых случаях бсшее естественным является ключ, состоящий из нескольких атрибутов. В такой ситуации ключ — это уникальная комбинация значений атрибутов, каждый из которых сам по себе не является уникальным. Например, для класса Customer в качестве составного ключа можно использовать комбинацию атрибутов lastName, firstName и address. Атрибут accountld был добавлен в качестве ключа класса Customer по нескольким причинам. Во-первых, намного проще обеспечивать уникальность, когда ключ состоит из одного атрибута. Кроме того, как будет показано в главе 4, для простых ключей значительно проще представлять связи. И наконец, декларирование трех атрибутов в качестве составного ключа ограничивает набор сущностей, которые могут храниться в базе данных. Если два человека имеют одинаковые имена, фамилии и адреса, это ограничение приведет к тому, что они будут рассматриваться системой как один и тот же клиент. В этой ситуации модель данных может ограничивать применимость полученной в итоге информационной системы, поскольку может оказаться, что не существует способа представить реальную ситуацию в базе данных.

Класс сущностей, который не имеет ключа и не может существовать сам по себе, называется классом слабых сущностей (weak entity class). Слабые сущности подробно обсуждаются 2.4.

Комментарии закрыты