Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Модели данных и СУБД.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
1.71 Mб
Скачать

2.7. Многомерная модель.

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

Агрегируемость данных означает рассмотрение информации на различных уровнях ее обобщения.

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

Прогнозируемость данных подразумевает задание функций прогнозирования и применение их к различным временным интервалам.

К числу основных понятий многомерной модели относятся измерение и ячейка. Измерение – это множество однотипных данных, образующих одну из граней многомерной таблицы. Ячейка – это поле, значение которого однозначно определяется фиксированным набором измерений.

Используются два основных варианта организации данных: гиперкубическая и поликубическая.

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

В поликубической схеме может быть определено несколько таблиц различной размерностью и различными измерениями.

В многомерной модели реализуются такие специальные операции как формирование “среза”, вращение, агрегация и детализация.

Основным достоинством многомерной модели данных является удобство и эффективность аналитической обработки больших объемов данных, связанных со временем.

Недостатком многомерной модели является ее громоздкость для простейших задач обычной оперативной обработки данных.

3. Реляционная алгебра и реляционное исчисление.

3.1. Реляционная алгебра.

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

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

К основным операциям относятся следующие операции: объединение отношений; разность отношений; пересечение отношений; декартово произведение отношений; проекция; выборка; деление отношений; -соединение отношений; естественное соединение; внешнее соединение отношений; полусоединение отношений.

Рассмотрим эти операции подробнее.

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

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

Пересечение. RS обозначает множество всех кортежей, принадлежащих одновременно R и S. Ясно, что R и S должны иметь одинаковую арность и быть совместимы. Очевидно, что RS=R\(R\S)=S\(S\R).

Примеры.

A

B

C

A

B

C

R =

1

2

3

S =

2

7

1

4

1

6

4

1

6

3

2

4

1

2

3

R\S =

1

2

3

RS =

4

1

6

3

2

1

3

2

4

2

7

1

RS

4

1

6

Декартово произведение. Пусть R и S – отношения арности г и s соответственно. Тогда декартовым произведением RxS отношений R и S называется множество всех кортежей длины r+s, таких что, первые г компонент образуют кортежи, принадлежащие R, а последние s – кортежи, принадлежащие S.

Примеры.

A

B

C

D

E

F

R =

1

2

3

S =

2

7

1

4

1

6

4

1

6

3

2

4

A

B

C

D

E

F

1

2

3

2

7

1

1

2

3

4

1

6

RxS =

4

1

6

2

7

1

4

1

6

4

1

6

3

2

4

2

7

1

3

2

4

4

1

6

Если имена столбцов в отношениях-сомножителях совпадают, то их помечают именами отношений, например, вместо A, B, C, D, E, F можно писать R.A, R.B, R.C, S.D, S.E, S.F.

Проекция. Сущность этой операции заключается в том, что в исходном отношении удаляются некоторые компоненты (атрибуты) и (или) переставляются оставшиеся. Пусть R – отношение арности г. Обозначим i1, i2, …, im(R), где ij – целые числа в диапазоне от 1 до г, проекцию R на компоненты i1, i2, …, im, то есть множество m-ок, таких, что существует некоторый принадлежащий R кортеж b1, b2, …, br, удовлетворяющий условию aj=bij.

Например, для построения 3,1(R) нужно из каждого кортежа, принадлежащего R, сформировать кортеж длины 2 из третьей и первой его компонентов в указанном порядке, то есть выписать 3-ю, затем 1-ю компоненты. При этом из каждой группы одинаковых кортежей в результирующем отношении оставляется только один кортеж (отношение – это множество кортежей, и оно не может содержать одинаковых, то есть совпадающих по всем компонентам кортежей).

Вместо номеров компонент (столбцов) часто используют атрибуты.

Выборка. Пусть F – формула, образованная:

  1. операндами, являющимися константами или номерами компонент (атрибутами);

  2. операциями сравнения: <, =, >, , ;

  3. логическими операциями  (И – конъюнкция), \/ (ИЛИ – дизъюнкция),  (НЕТ – отрицание).

В этом случае F(R) есть множество всех таких кортежей t, принадлежащих R, что при подстановке i-го компонента вместо всех вхождений i (или соответствующего атрибута) в формулу F она станет истинной.

Например, 2>3 обозначает множество кортежей, принадлежащих R, второй компонент которых больше третьего.

Заметим, что константы в формулах должны быть заключены в кавычки, это позволит отличить их от номеров или имен столбцов.

Пример.

A

B

C

R =

1

2

3

4

1

6

3

2

4

A

C

A

B

C

A,C(R )=

1

3

B=’2’(R )=

1

2

3

4

6

3

2

4

3

4

Деление. Пусть R и S отношения арности r и s соответственно, причем r>s и S. Предположим, что R определено на множестве атрибутов A, а S на множестве атрибутов B и BA. RS (частное) есть множество кортежей t длины r-s, таких, что для всех кортежей uS, кортеж tu принадлежит R ( здесь tu означает кортеж полученный приписыванием справа к кортежу t компонент кортежа u).

Пример.

A

B

C

D

C

D

A

B

1

2

3

4

S =

3

4

RS =

1

2

1

2

5

6

5

6

5

4

R =

2

3

5

6

5

4

3

4

5

4

5

6

1

2

4

5

-соединение. -соединение отношений R и S по столбцам i и j, записываемое RijS, где  – операция сравнения ( = , < и т. д. ), есть краткая запись выражения: ij(RxS). Таким образом, -соединение R и S представляет собой множество всех таких кортежей в декартовом произведении R и S, что i-й атрибут R находится в отношении  с j-м атрибутом отношения S. Если  является операцией “=”, то эта операция называется эквисоединением.

Естественное соединение. Эта операция играет фундаментальную роль в теории проектирования реляционных баз данных. Естественное соединение (обозначается RS) применимо лишь тогда, когда отношения имеют один или несколько общих атрибутов.

Вычислить RS можно следующим образом:

  1. вычислить RxS;

  2. для каждого атрибута А, который именует некоторый столбец в R и какой-либо столбец в S, выберем только те кортежи из RxS, у которых совпадают значения в столбцах R.A и S.A;

  3. для каждого указанного выше атрибута А удалим столбец R.A.

Формально, если A1, A2,…, Ak являются общими атрибутами для R и S, то

RS = i1, i2, …, im (R.A1=S.A1R.Ak=S.Ak (RxS)),

где i1, i2, …, im - упорядоченный список всех атрибутов RxS, за исключением атрибутов S.A1, S.A2, …, S.Ak.

Рассмотрим ряд примеров, реализующих вышеописанные операции.

Примеры.

A

B

C

D

E

R =

1

2

3

S =

3

1

4

5

6

6

2

7

8

9

A

B

C

D

E

R B<D S =

1

2

3

3

1

1

2

3

6

2

4

5

6

6

2

A

B

C

B

C

D

1

2

3

2

3

4

R =

4

2

3

S =

2

3

5

2

2

6

1

4

2

3

1

4

A

B

C

D

1

2

3

4

RS =

1

2

3

5

4

2

3

4

4

2

3

5

3

1

4

2

Внешнее соединение. Левым внешним соединением RS отношений R и S называется отношение, содержащее все кортежи отношения RS, а также кортежи R, не имеющие совпадающих значений в общих столбцах с отношением S. Для обозначения отсутствующих значений во втором отношении используется определитель NULL.

Аналогично вводится операция правого внешнего соединения RS. Существует также полное внешнее соединение RS, в результирующем отношении которого помещаются все кортежи из обоих отношений и в котором для обозначения несовпадающих значений кортежей используются определители NULL.

Полусоединение. Эту операцию можно определить с помощью операций “проекция” и “-соединение”. А именно RijS=u(RijS). Здесь u это набор всех атрибутов отношения R. Аналогично определяются полусоединение по эквивалентности (когда  есть равенство) и полуестественное соединение RS.

A

B

C

B

C

D

1

2

3

2

3

4

R =

4

2

3

S =

2

3

5

2

2

6

1

4

2

3

1

4

3

5

4

Примеры.

A

B

C

D

A

B

C

D

1

2

3

4

1

2

3

4

RS =

1

2

3

5

RS =

1

2

3

5

4

2

3

4

4

2

3

4

4

2

3

5

4

2

3

5

3

1

4

2

3

1

4

2

2

2

6

NULL

NULL

3

5

4

A

B

C

D

1

2

3

4

1

2

3

5

RS=

4

2

3

4

4

2

3

5

3

1

4

2

2

2

6

NULL

NULL

3

5

4

A

B

C

D

E

1

2

3

S=

4

5

R=

4

3

2

3

2

2

7

1

1

2

6

A

B

C

1

2

3

RC<DS=

4

3

2

2

7

1

Пример, демонстрирующий выполнение полуестественного соединения отношений R и S.

A

B

C

B

C

D

R=

7

3

1

S=

4

3

1

2

4

1

4

1

2

A

B

C

RS=

2

4

1