Программирование >>  Реляционные базы данных 

1 ... 20 21 22 [ 23 ] 24 25 26 ... 125


3.1 Основы реляционной модели 69

шения: каждый кортеж представляет объект фильм . Компоненты трех кортежей отношения идентичны свойствам этого объекта, описанным на рис. 3.2. Однако объектам присуща идентичность, а кортежам нет. В принципе при объектно-ориентированном представлении фильмов может оказаться два разных объекта с одними и теми же значениями всех атрибутов, хотя в примере 2.23 и утверждалось, что С фильмами такое вряд ли случится.

Однако отношения - эго множества кортежей, причем один кортеж НС МОЖет лважлы входить в данное отношение. Поэтому, если отношение представляет класс объектов, нужна гарантия, что у отношения достаточно атрибутов для ого, чтобы два каких-либо объекта не имели одинаковых значений всех атрибутов данного отношсиня. В примере 2.23 говорилось, что два разных фильма не могут быть выпушены с одним и тем же названием и одном и том же году. Однако п худшем случае может понадобиться атрибуг. являющийся искусственным представлением самого объекта. Например, можно присвоить фильму уникальное целое число ID фильма и добавить movielD к множеству атрибутов приведенного в данном примере отношения.

3-1.4 Области

Как того требует реляционная модель, каждый компонент каждого кортежа должен быть атомарным, тс. компонентом элементарного типа, например целым числом или строкой. Недопустимо, чтобы значение было структурой записи, множеством, списком, набором или имело любой иной тип, который можно разбить на более мелкие компоненты. Это ограничение служит одним из препятствий для прямого перевода атрибутов ODL в единственные атрибуты отношения. Так, если афибут ODL name имеет тип

Struct Name {string first, string last}

в соответствующем отношении должно быть два атрибута - first и last (см. раздел 3.2.2).

Кроме того, предполагается, что с каждым атрибутом отношения связана какая-то oojtacmb значений, т.е. отдельный элементарный тип. Каждый компонент любого кортежа отношения должен иметь значение, принадлежащее области соответствующего столбца. Например, первым компонентом каждого из кортежей отношения Movie на рис. 3.1 должна быть строка, вторым и третьим - целое число, а значением четвертого компонента - одна из констант color или blackAndWtiite.

3.1.5 Эквивалентное представление отношения

С.чема и кортежи отношения - это множества, а не списки, поэтому порядок их представления не имеет значения. Если, напри.мср. перечислить три кортежа из рис. 3.1 шестью различными способами, отношение останется одним и тем же .

Более того, можно произвольно излсенять порядок атрибутов отношения, причем само отношение не изменится. Однако, перестраивая схему отношения, следует помнить, что атрибуты являются заголовками столбцов. Поэтому при изменении порядка атрибутов меняется порядок их столбцов. При перемещении столбца изменяется и порядок компонентов кортежей. В результате компоненты каждого кортежа переставляются так же. как переставляются столбцы.

В частности, на рис. 3 3 показано одно из многих отношений, которые могут быт получены на рис. 3.1 путем перестановки строк и столбцов. Исходное и полученное из него отно1иен11я считаются одним и тем же . Точнее говоря, эти две таблицы являются различными представлениями одного и того же отношения.

Заметим, по пересгановка атрибутов м столбцов влияет на отдельное представление кортежей.



year

title

filmType

length

1991

Mighty Ducks

color

1992

Waynes World

color

1977

Star Wars

color

Рис. 3.3. Другое представление отношения Movie Пример 3.1.

из рис. 3.1 и

Кортежи

(Star Wars. 1977.124. color)

(1977. Star Wars, color. 124)

из рис. 3.3 представляют один и тот же объект. Тем не менее в их эквивалентности можно быть уверенным, только если известен порядок атрибутов соответствуюии1Х им отношений. Поэтому в обшем случае следует выбирать порядок для атрибутов отношения и сохранять его на все время использования данного отношения. □

Формальное понятие кортежа

в данной книге кортежи выражаются как списки с понятным порядком атрибутов каждого отношения. В то же время сушествует и формальное понятие кортежа, позволяющее избежать фиксированного порядка атрибутов. Кортежем можно считать функцию из множества атрибутов схемы их отношения в множество значений - компонентов кортежа для этих атрибутов. Например, кортеж, представленный двумя способами в примере 3.1. можно определить как функцию:

title-* Star Wars year-* 1977 length-+124 Л1.т1Туре -у color

3.1.6 Экземпляры отношения

Отношение, касающееся фильмов, не статично, со временем оно изменяется. Предполагается, что изменяются и кортежи отношения: в БД вводятся новые кортежи фильмов, существующие кортежи изменяются при получении новой информации о фильме и, бывает, удаляются кортежи для тех фильмов, которые по какой-то причине исключаются из БД.

Схема отношения изменяется реже. Однако в некоторых ситуациях необходимо добавлять или удалять атрибуты. Схема при этом изменяется, а это в некоторых коммерческих системах БД может стоить очень дорого, так как для добавления или удаления компонента приходится переписывать иногда миллионы кортежей. При добавлении атрибута иногда трудно, а подчас даже невозможно найти правильные значения новых компонентов кортежей.



Множество кортежей для заданного отношения будем называть экземмяром этого отношения. Например, три кортежа на рис. 3.1 составляют экземпляр отношения Movie. Допустим, отношение Movie со временем изменилось и будет изменяться далее. Так, в 1980 г. в Movie нет кортеже11 для Mighty Ductus или Waynes World. Однако обычная система БД работает то.пько с одной версией любого огнои1ения - множеством кортежей, находящихся в отношении сейчас . Такой экземапяр отношения называется текущим экземпляром.

Схемы и экземпляры

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

Различие схема/экземпляр инфоко распространено в моделировании данных Например, в главе 2 подчеркивалось различие между определениями интерфейса ODL, задающими структуру класса объектов, и множеством объектов этого класса. Определение интерфейса подобно схеме, а множество объектов определяемого класса является экземпляром. Аналогично, множество сущностей и описания связей - это способ описания схемы в E/R-модели, а конкретный набор сущностей и множества связей образуют экземпляр E/R-схемы. Следует, однако, помнить, что при проектировании БД ее экземпляр не является частью проекта. При развитии проекта мы только представляем себе, как выглядят типичные экземпляры.

3-1.7 Упражнения к разделу 3.1

Упражнение 3.1.1. На рис 3.4 показаны экземпляры двух отношений, которые .могут бьггь частью банковской БД. Покажите:

a) Атрибуты каждого отношения

b) Кортежи каждого отношения

c) Компоненты одного из кортежей в каждом из отношений

d) Схему каждого из отношений

e) Схему БД

f) Подходящую область для каждого атрибута

g) Другой эквивалентный способ представления каждого отношения

accfWo

type

balance

firstName

lastNarDe

idNo

account

12345~

savings

12000

Robbie

Banks

901-222

12345

23456

checl<ing

1000

Lena

Hand

805-333

12345

34567

savings

Lena

Hand

805-333 1 23456

Отношение Accounts Рис. 3.4. Дао отношений для баню13о<ой БД

Отношение Customers



1 ... 20 21 22 [ 23 ] 24 25 26 ... 125

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика