Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Ф3



 

R1

 

Филиал

Страна

Город

Ф1

Россия

Москва

Ф2

Россия

Санкт-Петербург

Ф3

Германия

Берлин

Ф4

США

Нью-Йорк

Ф5

США

Чикаго

 

R2

Клиент

Страна

Номер договора

Иванов

Россия

 

Игнатьев

Россия

 

Котов

США

 

Кротов

Германия

 

Кротова

Германия

 

Курпатов

США

 

Штейн

Израиль

 

Штейн

Израиль

 

Кротова

Германия

 

 

R3

Номер договора

Филиал

Дата начала

Дата окончания

 

Ф1

01.01.2013

09.01.2013

 

Ф2

31.12.2012

15.01.2013

 

Ф3

20.01.2013

02.02.2013

 

Ф3

30.12.2013

09.01.2013

 

Ф3

30.12.2013

09.01.2013

 

Ф4

05.01.2013

15.01.2013

 

Ф5

27.12.2012

15.01.2013

 

Ф2

20.01.2013

30.01.2013

 

Ф3

11.01.2013

21.01.2013

 

 

  1. Клиенты, заключившие договоры с несколькими филиалами:

 

Клиент

Страна

Номер договора

Иванов

Россия

 

Игнатьев

Россия

 

Котов

США

 

Кротов

Германия

 

Кротова

Германия

 

Курпатов

США

 

Штейн

Израиль

 

Штейн

Израиль

 

Кротова

Германия

 

R2

 

R3

Номер договора

Филиал

Дата начала

Дата окончания

 

Ф1

01.01.2013

09.01.2013

 

Ф2

31.12.2012

15.01.2013

 

Ф3

20.01.2013

02.02.2013

 

Ф3

30.12.2013

09.01.2013

 

Ф3

30.12.2013

09.01.2013

 

Ф4

05.01.2013

15.01.2013

 

Ф5

27.12.2012

15.01.2013

 

Ф2

20.01.2013

30.01.2013

 

Ф3

11.01.2013

21.01.2013

 

 

а) Соединяем R2 с R3 по номеру договора, чтобы получить список клиентов и филиалов, с которыми они заключили договоры.:

R4 = ∏филиал, клиент(R2 ⋈ R2.номер договора = R3.номер договора R3)

Клиент

Страна

Номер договора

Иванов

Россия

 

Игнатьев

Россия

 

R4

Филиал

Клиент

Ф1

Иванов

Ф2

Игнатьев

Ф3

Котов

Ф3

Кротов

Ф3

Кротова

Ф4

Курпатов

Ф5

Штейн

Ф2

Штейн

Ф3

Кротова

 

b) Соединяем R4 с собой со следующим условием: Клиент = Клиент и Филиал!= Филиал:

R5 = R4 ⋈ R4.клиент = R4`.клиент and R4.филиал!= R4`.филиал R4`

R5

Филиал

Клиент

Филиал

Клиент

Ф1

Иванов

Ф1

Иванов

Ф2

Игнатьев

Ф2

Игнатьев

Ф3

Котов

Ф3

Котов

Ф3

Кротов

Ф3

Кротов

Ф3

Кротова

Ф3

Кротова

Ф4

Курпатов

Ф4

Курпатов

Ф5

Штейн

Ф5

Штейн

Ф5

Штейн

Ф2

Штейн

Ф2

Штейн

Ф5

Штейн

Ф2

Штейн

Ф2

Штейн

Ф3

Кротова

Ф3

Кротова

 

c) Исключаем строки, дублирующие друг друга и получаем список клиентов, заключивших договоры с несколькими филиалами:

R6 = ∏клиент(R5)

R6

Клиент

Штейн

 

  1. Филиалы, которые работают с клиентами только одной страны

R2



Клиент

Страна

Номер договора

Иванов

Россия

 

Игнатьев

Россия

 

Котов

США

 

Кротов

Германия

 

Кротова

Германия

 

Курпатов

США

 

Штейн

Израиль

 

Штейн

Израиль

 

Кротова

Германия

 

 

Номер договора

Филиал

Дата начала

Дата окончания

 

Ф1

01.01.2013

09.01.2013

 

Ф2

31.12.2012

15.01.2013

 

Ф3

20.01.2013

02.02.2013

 

Ф3

30.12.2013

09.01.2013

 

Ф3

30.12.2013

09.01.2013

 

Ф4

05.01.2013

15.01.2013

 

Ф5

27.12.2012

15.01.2013

 

Ф2

20.01.2013

30.01.2013

 

Ф3

11.01.2013

21.01.2013

R3

 

a) Соединим R2 с R3 по номеру договора, чтобы получить список филиалов и стран, с клиентами из которых работали филиалы:

R4 = ∏филиал, страна(R2 ⋈ R2.номер договора = R3.номер договора R3)

R4

Филиал

Страна

Ф1

Россия

Ф2

Россия

Ф3

США

Ф3

Германия

Ф3

Германия

Ф4

США

Ф5

Израиль

Ф2

Израиль

Ф3

Германия

b) Соединяем R4 с собой со следующим условием: Филиал = Филиал и Страна!= Страна:

R5 = ∏филиал(R4 ⋈ R4. филиал = R4`. филиал and R4.страна!= R4`.страна R4`)

R5

Филиал

Страна

Филиал

Страна

Ф1

Россия

Ф1

Россия

Ф2

Россия

Ф2

Россия

Ф2

Россия

Ф2

Израиль

Ф2

Израиль

Ф2

Израиль

Ф3

США

Ф3

США

Ф3

США

Ф3

Германия

Ф3

Германия

Ф3

Германия

Ф3

Германия

Ф3

Германия

Ф4

США

Ф4

США

Ф5

Израиль

Ф5

Израиль

Ф3

Германия

Ф3

Германия

 

с) Берём проекцию по филиалам отношения R3, чтобы исключить филиалы, не заключившие ни одного договора, вычитаем из неё проекцию филиалов, работающих с клиентами из разных стран, и получаем список филиалов, работающих с клиентами только одной страны:

R6 = ∏Филиал (R3)\ ∏Филиал (R5)

R6

Филиал

Ф1

Ф4

Ф5

 

 

  1. Клиенты, которые заключили несколько договоров с одним филиалом

R2

Клиент

Страна

Номер договора

Иванов

Россия

 

Игнатьев

Россия

 

Котов

США

 

Кротов

Германия

 

Кротова

Германия

 

Курпатов

США

 

Штейн

Израиль

 

Штейн

Израиль

 

Кротова

Германия

 

 

 

Номер договора

Филиал

Дата начала

Дата окончания

 

Ф1

01.01.2013

09.01.2013

 

Ф2

31.12.2012

15.01.2013

 

Ф3

20.01.2013

02.02.2013

 

Ф3

30.12.2013

09.01.2013

 

Ф3

30.12.2013

09.01.2013

 

Ф4

05.01.2013

15.01.2013

 

Ф5

27.12.2012

15.01.2013

 

Ф2

20.01.2013

30.01.2013

 

Ф3

11.01.2013

21.01.2013

R3

 

a) Соединяем R2 с R3 по номеру договора, чтобы получить список клиентов и филиалов, с которыми они заключили договоры. Филиалов, не заключивших ни одного договора, в получившемся отношении не будет, т.к. их нет в отношении R3:

R4 = ∏номер договора, филиал, клиент(R2 ⋈ R2.номер договора = R3.номер договора R3)

R4

Номер договора

Филиал

Клиент

 

Ф1

Иванов

 

Ф2

Игнатьев

 

Ф3

Котов

 

Ф3

Кротов

 

Ф3

Кротова

 

Ф4

Курпатов

 

Ф5

Штейн

 

Ф2

Штейн

 

Ф3

Кротова

b) Соединяем R4 с собой по следующему предикату: Клиент = Клиент, Филиал = Филиал, Номер договора!= Номер договора:

R5 = R4 ⋈ R4.клиент = R4`.клиент and R4.филиал = R4`.филиал and R4.номер договора!= R4`.номер договора R4`

 

R5

Номер договора

Филиал

Клиент

Номер договора

Филиал

Клиент

 

Ф1

Иванов

 

Ф1

Иванов

 

Ф2

Игнатьев

 

Ф2

Игнатьев

 

Ф3

Котов

 

Ф3

Котов

 

Ф3

Кротов

 

Ф3

Кротов

 

Ф3

Кротова

 

Ф3

Кротова

 

Ф3

Кротова

 

Ф3

Кротова

 

Ф3

Кротова

 

Ф3

Кротова

 

Ф4

Курпатов

 

Ф4

Курпатов

 

Ф5

Штейн

 

Ф5

Штейн

 

Ф2

Штейн

 

Ф2

Штейн

 

с) Исключаем строки, дублирующие друг друга, и получаем список клиентов, заключивших несколько договоров с одним филиалом:

 

R6 = ∏ клиент(R5)

R6

Клиент

Кротова

 

4. Филиалы, которые заключили договоры только с клиентами из той же страны, в которой расположен этот филиал

Филиал

Страна

Город

Ф1

Россия

Москва

Ф2

Россия

Санкт-Петербург

Ф3

Германия

Берлин

Ф4

США

Нью-Йорк

Ф5

США

Чикаго

R1

 

 

R2

Клиент

Страна

Номер договора

Иванов

Россия

 

Игнатьев

Россия

 

Котов

США

 

Кротов

Германия

 

Кротова

Германия

 

Курпатов

США

 

Штейн

Израиль

 

Штейн

Израиль

 

Кротова

Германия

 

 

 

Номер договора

Филиал

Дата начала

Дата окончания

 

Ф1

01.01.2013

09.01.2013

 

Ф2

31.12.2012

15.01.2013

 

Ф3

20.01.2013

02.02.2013

 

Ф3

30.12.2013

09.01.2013

 

Ф3

30.12.2013

09.01.2013

 

Ф4

05.01.2013

15.01.2013

 

Ф5

27.12.2012

15.01.2013

 

Ф2

20.01.2013

30.01.2013

 

Ф3

11.01.2013

21.01.2013

R3

 

a) Соединяем R2 с R3 по номеру договора, чтобы получить список клиентов и филиалов, с которыми они заключили договоры. Филиалов, не заключивших ни одного договора, в получившемся отношении не будет, т.к. их нет в отношении R3:

R4 = ∏номер договора, филиал, клиент, страна(R2 ⋈ R2.номер договора = R3.номер договора R3)

 

R4

Номер договора

Филиал

Клиент

Страна

 

Ф1

Иванов

Россия

 

Ф2

Игнатьев

Россия

 

Ф3

Котов

США

 

Ф3

Кротов

Германия

 

Ф3

Кротова

Германия

 

Ф4

Курпатов

США

 

Ф5

Штейн

Израиль

 

Ф2

Штейн

Израиль

 

Ф3

Кротова

Германия

 

b) Соединяем R4 и R1 по следующему предикату: Филиал = Филиал, Страна филиала!= Страна клиента и получаем список филиалов, заключивших договоры с клиентами из других стран.

R5 = ∏ Филиал (R4 ⋈ R4.филиал = R2.филиал and R4.Страна филиала!= R4.Страна клиента R2)

R5

Филиал

Ф2

Ф3

Ф5

 

с) Берём проекцию по филиалам отношения R3, чтобы исключить филиалы, не заключившие ни одного договора, вычитаем из неё получившееся отношение R5 и получаем список филиалов, работающих с клиентами только из той страны, где находятся филиалы:

R6 = (∏ Филиал(R3)\R5)

R6

Филиал

Ф1

Ф4

 

  1. Клиенты, которые заключили несколько договоров с разными филиалами – по одному с каждым

 

 

Клиент

Страна

Номер договора

Иванов

Россия

 

Игнатьев

Россия

 

Котов

США

 

Кротов

Германия

 

Кротова

Германия

 

Курпатов

США

 

Штейн

Израиль

 

Штейн

Израиль

 

Кротова

Германия

 

R2

 

Номер договора

Филиал

Дата начала

Дата окончания

 

Ф1

01.01.2013

09.01.2013

 

Ф2

31.12.2012

15.01.2013

 

Ф3

20.01.2013

02.02.2013

 

Ф3

30.12.2013

09.01.2013

 

Ф3

30.12.2013

09.01.2013

 

Ф4

05.01.2013

15.01.2013

 

Ф5

27.12.2012

15.01.2013

 

Ф2

20.01.2013

30.01.2013

 

Ф3

11.01.2013

21.01.2013

R3

 

 

а) Соединяем R2 с R3 по номеру договора, чтобы получить список клиентов и филиалов, с которыми они заключили договоры:

R4 = ∏филиал, клиент, номер договора(R2 ⋈ R2.номер договора = R3.номер договора R3)

R4

Филиал

Клиент

Ф1

Иванов

Ф2

Игнатьев

Ф3

Котов

Ф3

Кротов

Ф3

Кротова

Ф4

Курпатов

Ф5

Штейн

Ф2

Штейн

Ф3

Кротова

 

b) Соединяем R4 с собой со следующим условием: Клиент = Клиент и Филиал!= Филиал:

R5 = R4 ⋈ R4.клиент = R4`.клиент and R4.филиал!= R4`.филиал R4`

R5

Филиал

Клиент

Филиал

Клиент

Ф1

Иванов

Ф1

Иванов

Ф2

Игнатьев

Ф2

Игнатьев

Ф3

Котов

Ф3

Котов

Ф3

Кротов

Ф3

Кротов

Ф3

Кротова

Ф3

Кротова

Ф4

Курпатов

Ф4

Курпатов

Ф5

Штейн

Ф5

Штейн

Ф5

Штейн

Ф2

Штейн

Ф2

Штейн

Ф5

Штейн

Ф2

Штейн

Ф2

Штейн

Ф3

Кротова

Ф3

Кротова

 

c) Получаем список клиентов, заключивших договоры с несколькими филиалами и эти филиалы:

R6 = ∏клиент, филиал(R5)

R6

Клиент

Филиал

Штейн

Ф2

Штейн

Ф5

 

d) Соединяем R2 с R3 по номеру договора, чтобы получить список клиентов и филиалов, с которыми они заключили договоры:

R7 = ∏номер договора, филиал, клиент(R2 ⋈ R2.номер договора = R3.номер договора R3)

R7

Номер договора

Филиал

Клиент

 

Ф1

Иванов

 

Ф2

Игнатьев

 

Ф3

Котов

 

Ф3

Кротов

 

Ф3

Кротова

 

Ф4

Курпатов

 

Ф5

Штейн

 

Ф2

Штейн

 

Ф3

Кротова

e) Соединяем R7 с собой по следующему предикату: Клиент = Клиент, Филиал = Филиал, Номер договора!= Номер договора:

R8 = R7 ⋈ R7.клиент = R7`.клиент and R7.филиал = R7`.филиал and R7.номер договора!= R7`.номер договора R7`

 

R8

Номер договора

Филиал

Клиент

Номер договора

Филиал

Клиент

 

Ф1

Иванов

 

Ф1

Иванов

 

Ф2

Игнатьев

 

Ф2

Игнатьев

 

Ф3

Котов

 

Ф3

Котов

 

Ф3

Кротов

 

Ф3

Кротов

 

Ф3

Кротова

 

Ф3

Кротова

 

Ф3

Кротова

 

Ф3

Кротова

 

Ф3

Кротова

 

Ф3

Кротова

 

Ф4

Курпатов

 

Ф4

Курпатов

 

Ф5

Штейн

 

Ф5

Штейн

 

Ф2

Штейн

 

Ф2

Штейн

 

f) Исключаем строки, дублирующие друг друга и получаем список клиентов, заключивших несколько договоров с одним филиалом:

 

R9 = ∏ клиент(R8)

R9

Клиент

Кротова

 

g) Вычитаем из списка клиентов, заключивших договоры с несколькими филиалам список клиентов, заключивших несколько договоров с одним филиалом:

R10 = ∏ клиент(R6\R9)

R10

Клиенты

Штейн

 

  1. Клиенты, которые заключили только один договор

R2

Клиент

Страна

Номер договора

Иванов

Россия

 

Игнатьев

Россия

 

Котов

США

 

Кротов

Германия

 

Кротова

Германия

 

Курпатов

США

 

Штейн

Израиль

 

Штейн

Израиль

 

Кротова

Германия

 

 

R3

Номер договора

Филиал

Дата начала

Дата окончания

 

Ф1

01.01.2013

09.01.2013

 

Ф2

31.12.2012

15.01.2013

 

Ф3

20.01.2013

02.02.2013

 

Ф3

30.12.2013

09.01.2013

 

Ф3

30.12.2013

09.01.2013

 

Ф4

05.01.2013

15.01.2013

 

Ф5

27.12.2012

15.01.2013

 

Ф2

20.01.2013

30.01.2013

 

Ф3

11.01.2013

21.01.2013

 

а) Находим клиентов, заключивших договоры с несколькими филиалами (задача 1):

R4

Клиент

Штейн

 

b) Находим клиентов, заключивших несколько договоров с одним филиалом (задача 5):

R5

Клиент

Кротова

 

с) Из проекции из R2 по клиенту вычитаем R4 и R5, чтобы получить список клиентов, заключивших только один договор:

R6 = ∏ клиент((R2\R4)\R5)

R6

Клиент

Иванов

Игнатьев

Котов

Кротов

Курпатов

 

 

  1. Клиенты, которые заключили договоры только с филиалами, расположенными в той же стране, в которой проживает клиент

 

R1

 

Филиал

Страна

Город

Ф1

Россия

Москва

Ф2

Россия

Санкт-Петербург

Ф3

Германия

Берлин

Ф4

США

Нью-Йорк

Ф5

США

Чикаго

 

R2

Клиент

Страна

Номер договора

Иванов

Россия

 

Игнатьев

Россия

 

Котов

США

 

Кротов

Германия

 

Кротова

Германия

 

Курпатов

США

 

Штейн

Израиль

 

Штейн

Израиль

 

Кротова

Германия

 

 

 

R3

Номер договора

Филиал

Дата начала

Дата окончания

 

Ф1

01.01.2013

09.01.2013

 

Ф2

31.12.2012

15.01.2013

 

Ф3

20.01.2013

02.02.2013

 

Ф3

30.12.2013

09.01.2013

 

Ф3

30.12.2013

09.01.2013

 

Ф4

05.01.2013

15.01.2013

 

Ф5

27.12.2012

15.01.2013

 

Ф2

20.01.2013

30.01.2013

 

Ф3

11.01.2013

21.01.2013

 

а) Соединяем R1 и R3 по филиалу, чтобы получить список филиалов, стран, где они находится и номеров договоров, которые заключали эти филиалы:

R4 = ∏номер договора, филиал, страна(R1 ⋈ R1.филиал = R3.филиал R3)

R4

Номер договора

Филиал

Страна

 

Ф1

Россия

 

Ф2

Россия

 

Ф3

Германия

 

Ф3

Германия

 

Ф3

Германия

 

Ф4

США

 

Ф5

США

 

Ф2

Россия

 

Ф3

Германия

 

b) Соединяем R4 и R2 по следующему предикату: Номер договора = Номер договора, Страна филиала!= Страна клиента

R5 = ∏ клиент (R4 ⋈ R4.номер договора = R2.номер договора and R4.Страна филиала!= R4.Страна клиента R2)

R5

Клиент

Котов

Штейн

 

с) Вычитаем R5 из проекции R2 по клиенту, чтобы получить список клиентов, заключивших договор только с филиалами, расположенными в той же стране, в которой проживает клиент:

R6 = ∏ клиент(R2\ R5)

R6

Клиент

Иванов

Игнатьев

Кротов

Кротова

Курпатов

 

  1. Филиалы, с которыми заключили договоры только клиенты из других стран

 

R1

 

Филиал

Страна

Город

Ф1

Россия

Москва

Ф2

Россия

Санкт-Петербург

Ф3

Германия

Берлин

Ф4

США

Нью-Йорк

Ф5

США

Чикаго

 

R2

Клиент

Страна

Номер договора

Иванов

Россия

 

Игнатьев

Россия

 

Котов

США

 

Кротов

Германия

 

Кротова

Германия

 

Курпатов

США

 

Штейн

Израиль

 

Штейн

Израиль

 

Кротова

Германия

 

 

R3

Номер договора

Филиал

Дата начала

Дата окончания

 

Ф1

01.01.2013

09.01.2013

 

Ф2

31.12.2012

15.01.2013

 

Ф3

20.01.2013

02.02.2013

 

Ф3

30.12.2013

09.01.2013

 

Ф3

30.12.2013

09.01.2013

 

Ф4

05.01.2013

15.01.2013

 

Ф5

27.12.2012

15.01.2013

 

Ф2

20.01.2013

30.01.2013

 

Ф3

11.01.2013

21.01.2013

 

а) Соединяем R2 с R3 по номеру договора, чтобы получить список клиентов и филиалов, с которыми они заключили договоры. Филиалов, не заключивших ни одного договора, в получившемся отношении не будет, т.к. их нет в отношении R3:

R4 = ∏номер договора, филиал, клиент, страна(R2 ⋈ R2.номер договора = R3.номер договора R3)

 

R4

Номер договора

Филиал

Клиент

Страна

 

Ф1

Иванов

Россия

 

Ф2

Игнатьев

Россия

 

Ф3

Котов

США

 

Ф3

Кротов

Германия

 

Ф3

Кротова

Германия

 

Ф4

Курпатов

США

 

Ф5

Штейн

Израиль

 

Ф2

Штейн

Израиль

 

Ф3

Кротова

Германия

 

b) Соединяем R4 и R2 по следующему предикату: Номер договора = Номер договора, Страна филиала = Страна клиента, чтобы получить список филиалов, заключивших хотя бы один договор с клиентом из своей же страны:

R5 = ∏ Филиал (R4 ⋈ R4.номер договора = R2.номер договора and R4.Страна филиала = R4.Страна клиента R2)

R5

Филиал

Ф1

Ф2

Ф3

Ф4

 

с) Берём проекцию по филиалам отношения R3, чтобы исключить филиалы, не заключившие ни одного договора, вычитаем из неё получившееся отношение R5:

R6 = ∏ филиал(R3\ R5)

R6

Филиал

Ф5

 

  1. Филиалы, которые работают с клиентами из нескольких стран /*дописать*/

R2

Клиент

Страна

Номер договора

Иванов

Россия

 

Игнатьев

Россия

 

Котов

США

 

Кротов

Германия

 

Кротова

Германия

 

Курпатов

США

 

Штейн

Израиль

 

Штейн

Израиль

 

Кротова

Германия

 

 

R3

Номер договора

Филиал

Дата начала

Дата окончания

 

Ф1

01.01.2013

09.01.2013

 

Ф2

31.12.2012

15.01.2013

 

Ф3

20.01.2013

02.02.2013

 

Ф3

30.12.2013

09.01.2013

 

Ф3

30.12.2013

09.01.2013

 

Ф4

05.01.2013

15.01.2013

 

Ф5

27.12.2012

15.01.2013

 

Ф2

20.01.2013

30.01.2013

 

Ф3

11.01.2013

21.01.2013

 

а) Соединяем R2 и R3 по номеру договора, чтобы получить список филиалов и стран, где живут клиенты, заключившие договоры с этими филиалами:

R4 = ∏номер договора, филиал, клиент, страна(R2⋈ R2.номер договора = R3.номер договора R3)

R4

Номер договора

Филиал

Клиент

Страна

 

Ф1

Иванов

Россия

 

Ф2

Игнатьев

Россия

 

Ф3

Котов

США

 

Ф3

Кротов

Германия

 

Ф3

Кротова

Германия

 

Ф4

Курпатов

США

 

Ф5

Штейн

Израиль

 

Ф2

Штейн

Израиль

 

Ф3

Кротова

Германия

 

b) Соединяем R4 с собой со следующим условием: Филиал = Филиал и Страна!= Страна:

R5 = ∏филиал(R4 ⋈ R4. филиал = R4`. филиал and R4.страна!= R4`.страна R4`)

R5

Филиал

Страна

Филиал

Страна

Ф1

Россия

Ф1

Россия

Ф2

Россия

Ф2

Россия

Ф2

Россия

Ф2

Израиль

Ф2

Израиль

Ф2

Израиль

Ф3

США

Ф3

США

Ф3

США

Ф3

Германия

Ф3

Германия

Ф3

Германия

Ф3

Германия

Ф3

Германия

Ф4

США

Ф4

США

Ф5

Израиль

Ф5

Израиль

Ф3

Германия

Ф3

Германия

 

с) Чтобы получить список филиалов, работающие с клиентами из разных стран, возьмём проекцию из R5 по филиалу:

R6 = ∏Филиал (R5)

R6

Филиал

Ф2

Ф3

 

 

  1. Клиенты, которые заключили договоры со всеми филиалами фирмы

 

R1

 

Филиал

Страна

Город

Ф1

Россия

Москва

Ф2

Россия

Санкт-Петербург

Ф3

Германия

Берлин

Ф4

США

Нью-Йорк

Ф5

США

Чикаго

 

R2

Клиент

Страна

Номер договора

Иванов

Россия

 

Игнатьев

Россия

 

Котов

США

 

Кротов

Германия

 

Кротова

Германия

 

Курпатов

США

 

Штейн

Израиль

 

Штейн

Израиль

 

Кротова

Германия

 

Штейн

Израиль

 

Штейн

Израиль

 

Штейн

Израиль

 

 

R3

Номер договора

Филиал

Дата начала

Дата окончания

 

Ф1

01.01.2013

09.01.2013

 

Ф2

31.12.2012

15.01.2013

 

Ф3

20.01.2013

02.02.2013

 

Ф3

30.12.2013

09.01.2013

 

Ф3

30.12.2013

09.01.2013

 

Ф4

05.01.2013

15.01.2013

 

Ф5

27.12.2012

15.01.2013

 

Ф2

20.01.2013

30.01.2013

 

Ф3

11.01.2013

21.01.2013

 

Ф1

03.02.2013

07.02.2013

 

Ф3

10.02.2013

15.02.2013

 

Ф4

16.02.2013

24.02.2013

 

 

Способ 1:

 

а) Соединяем R2 R3 по номеру договора. Делаем проекцию по клиенту и филиалу

R4 = ∏клиент,филиал(R2 ⋈ R2.номер договора = R3.номер договора R3)

 

R4

Клиент

Филиал

Иванов

Ф1

Игнатьев

Ф2

Котов

Ф3

Кротов

Ф3

Кротова

Ф3

Курпатов

Ф4

Штейн

Ф5

Штейн

Ф2

Кротова

Ф3

Штейн

Ф1

Штейн

Ф3

Штейн

Ф4

 

 

b) Берём декартово произведение полученной таблицы с проекцией по филиал таблицы R1:

 

R5 = R4*∏филиал(R1)

R5

Клиент

Филиал

Филиал

Иванов

Ф1

Ф1

Иванов

Ф1

Ф2

Иванов

Ф1

Ф3

Иванов

Ф1

Ф4

Иванов

Ф1

Ф5

Игнатьев

Ф2

Ф1

Игнатьев

Ф2

Ф2

Игнатьев

Ф2

Ф3

Игнатьев

Ф2

Ф4

Игнатьев

Ф2

Ф5

Котов

Ф3

Ф1

Котов

Ф3

Ф2

Котов

Ф3

Ф3

Котов

Ф3

Ф4

Котов

Ф3

Ф5

Кротов

Ф3

Ф1

Кротов

Ф3

Ф2

Кротов

Ф3

Ф3

Кротов

Ф3

Ф4

Кротов

Ф3

Ф5

Кротова

Ф3

Ф1

Кротова

Ф3

Ф2

Кротова

Ф3

Ф3

Кротова

Ф3

Ф4

Кротова

Ф3

Ф5

Курпатов

Ф4

Ф1

Курпатов

Ф4

Ф2

Курпатов

Ф4

Ф3

Курпатов

Ф4

Ф4

Курпатов

Ф4

Ф5

Штейн

Ф5

Ф1

Штейн

Ф5

Ф2

Штейн

Ф5

Ф3

Штейн

Ф5

Ф4

Штейн

Ф5

Ф5

Штейн

Ф2

Ф1

Штейн

Ф2

Ф2

Штейн

Ф2

Ф3

Штейн

Ф2

Ф4

Штейн

Ф2

Ф5

Кротова

Ф3

Ф1

Кротова

Ф3

Ф2

Кротова

Ф3

Ф3

Кротова

Ф3

Ф4

Кротова

Ф3

Ф5

Штейн

Ф1

Ф1

Штейн

Ф1

Ф2

Штейн

Ф1

Ф3

Штейн

Ф1

Ф4

Штейн

Ф1

Ф5

Штейн

Ф3

Ф1

Штейн

Ф3

Ф2

Штейн

Ф3

Ф3

Штейн

Ф3

Ф4

Штейн

Ф3

Ф5

Штейн

Ф4

Ф1

Штейн

Ф4

Ф2

Штейн

Ф4

Ф3

Штейн

Ф4

Ф4

Штейн

Ф4

Ф5

 

c) Делаем проекцию R5 по клиенту и второму филиалу:

R6 = ∏клиент, филиал (R5)

 

 

R6

Клиент

Филиал

Филиал

Иванов

Ф1

Ф1

Иванов

Ф1

Ф2

Иванов

Ф1

Ф3

Иванов

Ф1

Ф4

Иванов

Ф1

Ф5

Игнатьев

Ф2

Ф1

Игнатьев

Ф2

Ф2

Игнатьев

Ф2

Ф3

Игнатьев

Ф2

Ф4

Игнатьев

Ф2

Ф5

Котов

Ф3

Ф1

Котов

Ф3

Ф2

Котов

Ф3

Ф3

Котов

Ф3

Ф4

Котов

Ф3

Ф5

Кротов

Ф3

Ф1

Кротов

Ф3

Ф2

Кротов

Ф3

Ф3

Кротов

Ф3

Ф4

Кротов

Ф3

Ф5

Кротова

Ф3

Ф1

Кротова

Ф3

Ф2

Кротова

Ф3

Ф3

Кротова

Ф3

Ф4

Кротова

Ф3

Ф5

Курпатов

Ф4

Ф1

Курпатов

Ф4

Ф2

Курпатов

Ф4

Ф3

Курпатов

Ф4

Ф4

Курпатов

Ф4

Ф5

Штейн

Ф5

Ф1

Штейн

Ф5

Ф2

Штейн

Ф5

Ф3

Штейн

Ф5

Ф4

Штейн

Ф5

Ф5

Штейн

Ф2

Ф1

Штейн

Ф2

Ф2

Штейн

Ф2

Ф3

Штейн

Ф2

Ф4

Штейн

Ф2

Ф5

Кротова

Ф3

Ф1

Кротова

Ф3

Ф2

Кротова

Ф3

Ф3

Кротова

Ф3

Ф4

Кротова

Ф3

Ф5

Штейн

Ф1

Ф1

Штейн

Ф1

Ф2

Штейн

Ф1

Ф3

Штейн

Ф1

Ф4

Штейн

Ф1

Ф5

Штейн

Ф3

Ф1

Штейн

Ф3

Ф2

Штейн

Ф3

Ф3

Штейн

Ф3

Ф4

Штейн

Ф3


Дата добавления: 2015-08-29; просмотров: 67 | Нарушение авторских прав




<== предыдущая лекция | следующая лекция ==>
Домашние задания и темы для самостоятельной подготовки | 1 Вариант - Бхулар, Галацан, Дмитриева, Закерничная, Шолковенко,

mybiblioteka.su - 2015-2024 год. (0.682 сек.)