Материал: 500_Goncharov_S._A._Informatsionnye_tekhnologii_v_mediaindustrii_Upravlenie_dannymi_

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Отношение, или таблица, – это набор кортежей. Если кортежи являются n

– мерными, то есть, если таблица имеет n столбцов, отношение называется отношением степени n, или n – арным отношением.

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

Столбец с номером j называется j – м доменом отношения.

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

Схема БД древовидной структуры.

Отдел

Наименование

Отчетность

Руководитель

Бюджет

отдела

отдела

 

 

 

 

 

 

 

 

Работа

 

 

 

 

 

 

 

 

 

 

 

 

Служащий

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Описание

 

 

 

Имя

 

 

Пол

 

З/п

Звание

Адрес

работы

 

 

работы

 

 

служащего

служащего

отдела

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Трудовая

 

 

 

 

 

 

 

 

 

 

Дети

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

деятельность

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Дата

 

Должность

 

 

Имя

 

Возраст

Пол

 

 

 

 

назначения

 

 

 

 

 

 

ребенка

 

ребенка

ребенка

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Изменение оклада

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Дата установления з/п

Размер з/п

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рисунок 6.1 – Представление дерева нормализованной схемой

Каждый кортеж должен иметь ключ – идентификатор. Ключ должен обладать двумя свойствами:

А) Однозначная идентификация кортежа: кортеж должен однозначно определяться значением ключа.

31

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

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

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

Нормализованная форма схемы:

Отдел (№_отдела, название_отдела, отчетность, руководитель, бюджет), Работа (№_отдела, №_работы, описание_работы), Служащий (№_служащего, имя_служащего, №_отдела, пол, з/пл., звание,

адрес), Изменение оклада (№_служащего, дата_установления_з/пл.,

размер_з/пл.), Дети (№_служащего, имя_ребенка, возраст_ребенка, пол_ребенка),

Трудовая деятельность (№_служашего, дата_назначения, должность).

Манипулирование отношениями (Реляционная алгебра)

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

Операция А. Прежде всего, нужно уметь выделять из отношения нужные столбцы. Эта операция называется проекцией. В операции проектирования участвует единственный операнд, который обозначается ИФ (имя файла) – это может быть как файл с исходными данными, так и полученный в результате преобразований реляционной алгебры.

Формат записи операции следующий: рroj «список имен полей» (*ИФ*)

В список имен полей входят только те поля, которые должны составлять структуру файла ИФ.

Результат операции проектирования формируется следующим образом:

a.Из файла ИФ удаляются все поля, имена которых не фигурируют в списке;

b.Из полученной в пункте а) совокупности записей удаляются повторяющиеся, так что итог не содержит одинаковых записей.

Пример 1 приведен на рисунке 6.2.

32

Студент

№_Студента

Фамилия

№_группы

Средний

Город

 

студента

 

балл

рождения

53702

Котов

402

5

Улан-Удэ

53703

Лукьянов

721

4,3

Новосибирск

53791

Кузнецов

007

3

Коченево

53800

Борисов

402

3.38

Улан-Удэ

53805

Попов

721

4.56

Новосибирск

53806

Алейников

721

3.2

Новосибирск

Студ.= proj №_студента, Имя_студента, №_группы, Средний балл (Студент)

Груп. = proj №_группы, город рождения (Студент)

Студ.

№_Студента

 

Имя_Студента

 

№_группы

Средний балл

53702

Котов

402

5

53703

Лукьянов

721

4,3

53791

Кузнецов

007

3

53800

Борисов

402

3.38

53805

Попов

721

4.56

53806

Алейников

721

3.2

Груп.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

№_группы

 

Адрес

 

 

 

 

721

 

 

Новосибирск

 

 

 

 

007

 

 

Коченево

 

 

 

 

402

 

 

УланУдэ

 

 

 

Рисунок 6.2 – Операция проекции

Б: Операция соединения отношений является обратной к операции разрезания (проекции). В операции соединения участвуют два операнда, обозначаемые ИФ1 и ИФ2.

Формат записи операции: ИФ1 join ИФ2.

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

a. Для простоты возьмем одно общее поле. Пример 2: Студ. join Груп.

33

Результатом операции будет восстановление файла Студент.

b.Соединение двух файлов, не имеющих ни одного общего поля, является пустое множество.

c.Если у файлов ИФ1 и ИФ2 несколько общих полей, то соединение включает конкатенацию каждой записи ИФ1 с каждой записью ИФ2, у которой совпадают с первой значения всех общих полей.

Пример 3

 

 

 

 

 

 

 

 

 

 

 

 

 

ИФ1

 

 

 

 

 

 

 

ИФ2

 

 

 

 

G1

 

F1

F2

 

 

 

 

F1

 

F2

G2

 

d

 

3

H

 

 

 

 

 

 

 

 

 

 

 

 

3

 

H

A

 

h

 

7

N

 

 

 

 

 

 

 

 

 

 

 

 

3

 

H

B

 

y

 

4

H

 

 

 

 

 

 

 

 

 

 

 

 

7

 

N

A

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4

 

H

C

 

 

 

 

 

 

 

 

 

4

 

H

B

 

 

 

 

 

 

ИФ1 join ИФ2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

G1

F1

F2

 

G2

 

 

 

 

 

 

 

 

 

d

3

H

 

A

 

 

 

 

 

 

 

 

 

d

3

H

 

B

 

 

 

 

 

 

 

 

 

h

7

N

 

A

 

 

 

 

 

 

 

 

 

y

4

H

 

C

 

 

 

 

 

 

 

 

 

y

4

H

 

b

 

 

 

Рисунок 6.3 – Операция соединения

Можно вывести еще целый ряд операций над отношениями.

В: Операция выбора. Имеет один операнд – ИФ. Синтаксис операции выбора: sel условие (ИФ).

Результатом операции является совокупность записей ИФ, объединяющая лишь те из них, которые удовлетворяют заданному условию.

Пример 4: sel №_группы > 100 (Груп.) Результат операции

№_группы

Город рождения

721

Новосибирск

402

Улан-Удэ

Рисунок 6.4 – Операция выбора

34

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

Условие, определяющее результат выбора, представляет собой выражение, которое может включать операции сравнения >, =, <, < >, < =, > =, а также логические операции and(«и»), or(«или») и not(«не»).

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

Г: Операция объединения. Синтаксис: ИФ1 union ИФ2.

Результат – совокупность записей, входящих в один, а возможно и в два операнда.

Пример 5:

ИФ1

 

 

ИФ2

 

ИФ1 union ИФ2

 

 

 

 

 

 

 

 

 

 

F1

G2

 

F1

G1

F1

G1

 

a

4

 

d

2

 

a

4

 

b

5

 

b

5

 

b

5

 

c

6

 

e

4

 

c

6

 

 

 

 

c

6

 

d

2

 

 

 

 

 

 

 

e

4

Рисунок 6.5 – Операция объединение

При ответах на некоторые запросы вместо объединения предпочтительнее пользоваться выбором, включая в его условие операцию «ИЛИ». Это замечание для тех запросов, которые используют информацию из одного файла. В примере, демонстрирующем такую ситуацию, использованы файлы с рисунка 6.1.

Пример 6: определить номера отделов, в которых используются номера работ 7 и 12.

proj №_отдела (sel (№_работы = 7) оr (№_работы = 12)(Работа))

Д. Операция пересечения. Синтаксис: ИФ1 intersection ИФ2.

Результат – набор записей, входящих в состав обоих файлов.

Пример:

ИФ1

ИФ2

ИФ1 intersection ИФ2

35

Источник: https://studfile.net/preview/16709014/