24
Пример 2.1.
Сущность – «персона»
Атрибуты:
Экземпляр сущности «персона»
Значения атрибутов:
Фамилия
Имя
Отчество
Дата рождения
Номер паспорта
Номер телефона
Иванов
Иван
Иванович
15.05.1967
40 03 012345
123-45-67, 987-65-43
Обратим внимание, что атрибут «номер телефона» может иметь более од-
ного значения.
Многозначные атрибуты. Может оказаться, что некоторый атрибут сущ-
ности способен принимать одновременно несколько значений. Реляционная
модель, в которую должна быть впоследствии преобразована данная инфологи-
ческая модель, не допускает многозначности атрибутов. Данное противоречие
должно быть разрешено. Возможное решение – образование новой сущности.
В приведенном ранее примере атрибут «номер телефона» становится кан-
дидатом на создание сущности «номер телефона».
Другое решение – заменить название атрибута «номер телефона» на «пе-
речень номеров телефонов» и позволить хранить несколько номеров, пере-
численных через запятую, в виде одной текстовой строки. Кроме того, некото-
рые СУБД позволяют размещать в ячейках таблиц массивы, содержащие не-
сколько элементов. Однако при сохранении многозначного атрибута могут воз-
никнуть сложности с извлечением данных. Например, будет затруднительно
составить запрос следующего вида: «извлечь из БД сведения о персонах,
имеющих заданный номер телефона».
Кроме того, возможное решение зависит от общего контекста разрабаты-
ваемой БД. Если речь идет о контактных номерах телефонов сторонних клиен-
тов, номер, скорее всего, является атрибутом и возможные повторы маловеро-
ятны и несущественны. Если же ставится задача построения телефонного спра-
вочника некоторой организации, в которой, с одной стороны, один сотрудник
может быть доступен по нескольким номерам, а с другой – по одному номеру
может быть доступно несколько сотрудников, номер телефона, очевидно, ста-
новится самостоятельной сущностью.
Домен атрибута – множество значений, которые атрибут может прини-
мать. Доменом может быть, например, множество допустимых значений даты,
диапазон целых чисел или множество текстовых строк. Также это может быть
множество цветов и оттенков или список компаний - поставщиков.
При реализации модели на языке конкретной СУБД домены приводятся в
соответствие с имеющимися типами данных.
Если в процессе разработки и анализа модели выявляются достаточно спе-
цифические домены (например - «множество сотовых операторов»), они могут
рассматриваться в качестве кандидатов на создание новых сущностей.