Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Теория БД (текст).doc
Скачиваний:
23
Добавлен:
14.04.2015
Размер:
1.1 Mб
Скачать

5. Типы объектов, множества значений, ключевые атрибуты.

База данных содержит группы похожих между собой объектов. Например, в компании работают сотни сотрудников, о каждом из которых хранятся значения атрибутов. Все сотрудники имеют одни и те же атрибуты, но каждый сотрудник имеет свое значение для определенного атрибута. Такие похожие объекты образуют ТИП ОБЪЕКТА (entity type), т.е. множество объектов с одинаковыми атрибутами. База данных может иметь много типов объектов. Каждый тип описывается именем и списком атрибутов. На рис.5 приведен пример двух различных схем. Первая имеет три атрибута, вторая - четыре. Все атрибуты простые (атомарные). Для каждой схемы после нее записано несколько экземпляров соответствующих объектов. Значения атрибутов указываются в том же порядке, что и атрибуты в схеме.

Описание типа объекта называется СХЕМОЙ ТИПА ОБЪЕКТА и определяет структуру всех экземпляров. Схема специфицирует название типа объекта, название и смысл каждого атрибута, ограничения, которым подчиняются значения конкретных объектов.

М

СХЕМА: СОТРУДНИК (Имя,Возраст,Зарплата)

Экземпляры: e1. (Иванов П.Е.,55,800)

е2. (Сидоров И.А.,40,300)

е3. (Максимов Е.А.,33,450)

СХЕМА: ИНСТИТУТ (Название,Город,Ректор,Год_образов)

Экземпляры: c1. (РУДН,Москва,Филиппов,1960)

с2. (МГУ,Москва,Петровский,1755)

Рис.5. Схемы объектов и соответствующие им экземпляры

ножество экземпляров объектов в конкрет-ный момент времени называетсярасширением (extension) или состоянием типа объекта.

Важным ограничением на объекты является ключ или уникальность. Каждый тип объекта обычно имеет атрибут, значения которого в любой момент времени для всех экземпляров различны. Такой атрибут называется КЛЮЧЕВЫМ (key), а его значение может быть использовано для идентификации экземпляра объекта.

Для институтов Москвы таким атрибутом является Название, так как запрещено двум институтам иметь одинаковые названия. Для человека таким атрибутом может служить номер паспорта. Иногда несколько атрибутов могут быть объединены вместе и играть роль ключа, т.е. комбинация значений этих атрибутов является уникальной для всех экземпляров объекта. Если рассматривать не только московские институты, то в качестве ключа необходимо рассматривать пару атрибутов: Название и Город.

Специфицируя атрибут как ключевой, предполагается, что он сохранит свою уникальность для любого расширения типа объекта. Следовательно, это действительно ограничение, что два экземпляра в одно и то же время не могут иметь одинаковые значения. Это не свойство какого-то конкретного расширения типа, но ограничение на любые расширения. Это ограничение, и другие, обсуждаемые позже, являются следствием той реальной среды, которая реализуется в базе данных.

Некоторые типы объектов могут иметь более чем один ключ. Например, для автомобиля номер кузова и номер регистрации могут рассматриваться как два различных ключа одного и того же объекта.

Каждый простой атрибут типа объекта ассоциируется с множеством значений (value set) или областью допустимых значений (domain), определяющего то множество, элементы которого могут быть значениями атрибута конкретного экземпляра объекта. Для сотрудника возраст может быть между 16 и 70 годами, и мы определим множество значений атрибута Возраст как множество целых чисел от 16 до 70. Аналогично, для атрибута Имя множество значений может быть определено как множество строк, составленных из букв, разделенных знаком пробел.

Математически атрибут А типа объекта Е с множеством значений V может быть определен как функция из Е в P(V), где Р(V) - множество всех подмножеств V . A: Е P(V).

Значением атрибута А для экземпляра объекта е будет А(е). Выше приведенное определение относится и к однозначным, и к многозначным атрибутам, и к значению НИЛ. Значение НИЛ представляется пустым множеством. Для однозначных атрибутов А множество значений совпадает с множеством V (singleton). Никаких ограничений не накладывается на многозначные атрибуты. Для составного атрибута А множество значений W - декартово произведение , где- множества значений простых компонент атрибута, из которых составлен А:

Заметим, что составные и многозначные свойства атрибутов могут быть вложены произвольным образом. Мы будем использовать круглые скобки ( ) для объединения компонент составного атрибута, и фигурные - { } для выделения значений многозначных атрибутов (отдельные части и составных и многозначных атрибутов записываются через запятую). Например, пусть институт (с учетом его филиалов) имеет несколько зданий, в каждом из которых имеется несколько телефонных номеров для справок. Тогда, в принципе, адрес института и его телефоны могут быть представлены единственным многозначным атрибутом:

{(Москва,Пр-т Мира,15,{(095,317-15-18),(095,317-12-90)}),

(Ростов,Пушкина,21/8,{(040,21516),(040,21581),(040,21573)})}

Здесь записано, что институт имеет два здания: в Москве и Ростове, причем в Москве справки даются по двум телефонам, а в Ростове по трем. Номер телефона следует рассматривать как многозначный атрибут составного атрибута Адрес, причем каждое значение номера телефона в свою очередь составной атрибут, состоящий из двух атрибутов: КодГорода и NТелефона в городе.