Партнерка на США и Канаду по недвижимости, выплаты в крипто

  • 30% recurring commission
  • Выплаты в USDT
  • Вывод каждую неделю
  • Комиссия до 5 лет за каждого referral

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

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

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

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

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

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

 

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

Отдел (№_отдела, название_отдела, отчетность, руководитель, бюджет),

Работа (№_отдела, №_работы, описание_работы),

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

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

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

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

Рис. 26

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

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

НЕ нашли? Не то? Что вы ищете?

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

Формат записи операции следующий:

рroj «список имен полей» (*ИФ*)

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

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

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

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

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

Служащий

№_служащего

Имя_служащего

№_отдела

Зарплата

Адрес

53702

Васильев

721

120

Москва

53703

Иванов

721

230

Москва

53791

Кузнецов

007

500

Новосибирск

53800

Галкин

402

110

С.-Петербург

53805

Семин

721

190

Москва

53806

Федоров

402

100

С.-Петербург

Служ.= proj №_служащего, Имя_служащего, №_отдела, з/п (Служащий)

Отдел = proj №_отдела, Адрес (Служащий)

Служащий

№_служащего

Имя_служащего

№_отдела

Зарплата

53702

Васильев

721

120

53703

Иванов

721

230

53791

Кузнецов

007

500

53800

Галкин

402

110

53805

Семин

721

190

53806

Федоров

402

100

Отдел

№_отдела

Адрес

721

Москва

007

Новосибирск

402

С.-Петербург

Рис. 27.1

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

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

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

a.  Для простоты возьмем одно общее поле.

Пример 2: Служ. join Отд.

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

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

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

Пример 3

ИФ1 ИФ2

G1

F1

F2

d

3

H

h

7

N

y

4

H

F1

F2

G2

3

H

A

3

H

B

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

Рис.27.2

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

в. Операция выбора. Имеет один операнд – ИФ.

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

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

Пример 4: sel №_отдела > 100 (Отд.)

Результат операции

№_отдела

Отдел

721

Москва

402

С. - Петербург

Рис. 27.3

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

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

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

г. Операция объединения.

Синтаксис: ИФ1 union ИФ2.

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

Пример 5:

ИФ1 ИФ2 ИФ1 union ИФ2

F1

G2

a

4

b

5

c

6

F1

G1

d

2

b

5

e

4

c

6

F1

G1

a

4

b

5

c

6

d

2

e

4

Рис. 27.4

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

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

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

Пример 7: определить имя служащего либо работающего в третьем отделе, либо занимающего должность зам. начальника отдела

proj Имя_служащего (sel №_отдела = 3 (Служащий))

union proj Имя_служащего(Служащий join proj №_служащего (sel должность = «зам. начальника отдела» (Трудовая деятельность))

д. Операция пересечения.

Синтаксис: ИФ1 intersection ИФ2.

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

Пример:

ИФ1 ИФ2 ИФ1 intersection ИФ2

F1

G1

a

8

b

5

c

6

F1

G1

e

12

b

5

d

1

c

6

F1

G1

b

5

c

6

Рис.27.5

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 13