Модели и проектирование баз данных

       

Сущность и атрибут


. В концептуальной модели объекту ПО (см. п. 1.1.4) соответствует сущность, а свойству объекта – атрибут. Удовлетворительных формальных определений этих понятий не существует. Ниже следующий текст нужно рассматривать, как попытку помочь читателю сформировать достаточно ясные представления собственными силами.

         Атрибут

есть имя, принимающее значения на некотором множестве возможных значений.

Имя передает смысл соответствующего свойства объекта ПО. Например[4]: фамилия студента, номер зачетной книжки – атрибуты, соответствующие одноименным характеристикам объекта ПО  СТУДЕНТ.

Множество возможных значений атрибута определяется смыслом характеристики и требованиями ПО. Так, атрибут пол (человека) может принимать значения на двухэлементных множествах {‘мужской’, ‘женский’} или {‘М’, ‘Ж’}, или {0, 1}

и т.п. в зависимости от принятых в ПО стандартов.

Атрибут можно понимать как символ, обозначающий некоторое множество возможных значений данных.

         Сущность

есть имя, поставленное в соответствие набору атрибутов.

Имя сущности передает смысл соответствующего объекта ПО. Набор атрибутов сущности соответствует набору характеристик этого объекта, представляющих интерес с точки зрения бизнеса. То есть, атрибуты связаны общим смыслом, а их перечень определяется требованиями ПО.

Например[5], в концептуальной модели ВУЗа могут быть определены сущности:

СТУДЕНТ = {фамилия, имя, номер зачетной книжки, номер группы}

УЧЕБНАЯ ДИСЦИПЛИНА = {код, наименование, кафедра}.

         Набор значений атрибутов сущности называется экземпляром сущности.

Например: {‘123’, ‘Базы данных’, ‘АСУ’} – экземпляр сущности УЧЕБНАЯ  ДИСЦИПЛИНА.

         Сущность можно понимать как множество всех интерпретируемых наборов значений ее атрибутов.

Подчеркнем, что не любой набор возможных значений атрибутов может быть экземпляром сущности. Так, набор {‘Иванова’, ‘Петр’, ‘123456’, ‘432’} не имеет смысла, хотя и составлен из допустимых значений атрибутов сущности СТУДЕНТ.

Замечание 1.

С точки зрения математика сущность есть отношение, определенное на декартовом произведении множеств возможных значений атрибутов.

Замечание 2.

С точки зрения программиста сущность есть подмножество структурного типа данных.



Замечание 3.

Вообще говоря, атрибуты также могут принимать значения структурных типов. Например, атрибутом сущности СТУДЕНТ

может быть зачетная ведомость, в свою очередь обозначающая набор атрибутов {дисциплина, преподаватель, оценка, дата}. Однако распространенные в настоящее время ЯОД не допускают подобных конструкций.[6]



Содержание раздела