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

R4(Сотрудник, Отдел).

 

С использованием реляционной алгебры и языка составить запросы, позволяю­щие выбрать:

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

2. Программы, которые работают только с одним файлом.

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

4. Файлы, с которыми работают сотрудники всех отделов.

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

6. Программы, которые работают со всеми серверами.

7. Отделы, сотрудники которых не работают ни с одним файлом. То есть отделы, в которых нет ни одного сотрудника, работающего с каким-нибудь файлом.

8. Отделы, сотрудники которых работают со всеми серверами.

9. Серверы, с которыми работают сотрудники только одного отдела.

 

 

Ниже приводятся решения перечисленных задач.

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

а) R5=R2 R4 – добавили к R2 информацию об отделе пользователя файла.

б) Для ответа на вопрос нужно сделать тета-соединение отношения R5 самого с собой (для удобства обозначим копию R5 через R'5) при сложном условии несовпадения сотрудников и отделов для каждого файла, а потом спроектировать на атрибут "Название файла".

R6=ПНазвание файла (R5 R5.Название файла=R'5.Название файла Λ R5.Сотрудник <> R'5.Сотрудник Λ R5.Отдел <> R5.ОтделR'5),

где знак <> означает знак неравенства.

2. Программы, которые работают только с одним файлом.

а) Найдем программы, которые работают с более чем одним файлом (соединим R2 с самим собой, т.е. с его копией R'2)

R5=ПНазвание программы (R2 R2.Название программы=R'2.Название программы Λ R2.Название файла <> R'2.Название файла R'2)

б) Общий список работающих программ (при проекции повторяющиеся строки удаляются)

R6= ПНазвание программы(R2)

в) Вычтем из общего списка работающих программ те программы, к-рые работают со многими файлами – это и будет результат:

R7= R6 – R5

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

а) Выделим файлы с одинаковыми именами, но расположенные на различных серверах:

R5= ПНазвание файла(R3 R3.Название файла = R'3.Название файла Λ R3.Название сервера <> R’3.Название сервера R'3)

б) Выделим файлы, используемые сотрудниками разных (более одного) отделов. Для этого сначала добавим к R2 номер отдела сотрудника

R6= R2 R4

Теперь сделаем тета-соединение R6 с самим собой (R'6- копия R6)

R7= ПНазвание файла (R6 R6. Название файла=R'6. Название файла Λ R6.Отдел <> R'6.Отдел R'6)

Получили список файлов, которые используют сотрудники разных отделов.

в) Используя операцию пересечения R5 и R7, найдем общее для них подмножество файлов, которые имеют одинаковое имя, расположены на различных серверах и используются сотрудниками разных отделов:

R8= R5 R7

 

4. Файлы, с которыми работают сотрудники всех отделов.

R5=R2 R4 – добавили к R2 информацию об отделе пользователя файла.

R6= ПНазвание файла, Отдел (R5) – список файлов и отделов, в которых работают с этими файлами.

R7=ПОтдел(R4) – список всех отделов.

R8= (R6 ÷ R7) – операция деления дает список файлов, с которыми работают во всех отделах.

 

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

R5=R2 R4 – добавили к R2 информацию об отделе пользователя файла.

R6=ПНазвание файла (R5 R5.Название файла=R'5.Название файла Λ R5.Отдел <> R5.ОтделR'5) – файлы, используемые несколькими (более одного) отделами.

R7= ПНазвание файла (R2) – все используемые файлы.

R8=R7 - R6 – файлы, используемые только одним отделом.

 

6. Программы, которые работают со всеми серверами.

R5=R2 R3 – добавили к R2 информацию об названии сервера.

R6= ПНазвание программы, Название сервера(R5) – список пар "программа-сервер".

R7= ПНазвание сервера(R3) – список всех серверов.

R8= R6 ÷ R7 – результат.

 

7. Отделы, сотрудники которых не работают ни с одним файлом. То есть отде­лы, в которых нет ни одного сотрудника, работающего с каким-нибудь фай­лом.

R5=R2 R4 – добавили к R2 информацию об отделе пользователя файла.

R6= ПОтдел(R5) – список отделов, сотрудники которых работают с файлами.

R7= ПОтдел(R4) - общий список отделов.

R8=R7 - R6 – результат, т.е. отделы, сотрудники которых не работают ни с одним файлом.

8. Отделы, сотрудники которых работают со всеми серверами.

а) R5=R2 R3 – добавили к R2 атрибут "Название сервера".

б) R6=R5 R4 – добавили к R5 атрибут "Отдел". Т.е. теперь отношение R6 имеет схему:

R6(Название программы, Название файла, Сотрудник, Название сервера, Отдел).

в) R7= ПНазвание сервера, Отдел (R6) – список пар "сервер-отдел".

г) R8=ПНазвание сервера(R3) – список всех серверов.

д) R9= R7 ÷ R8 – список отделов, которые работают со всеми серверами, что и требуется получить.

Этот результат можно записать сразу без промежуточных пошаговых записей:

R9= ПНазвание сервера, Отдел (R2 R3 R4) ÷ ПНазвание сервера(R3)

 

9. Серверы, с которыми работают сотрудники только одного отдела.

а) R5=R2 R3 – добавили к R2 информацию об атрибуте "Название сервера".

б) R6=ПНазвание сервера (R5 R5.Название сервера=R'5.Название сервера Λ R5.Отдел <> R5.ОтделR'5) – это список серверов, с которыми работают сотрудники более чем одного отдела.

в) R7=ПНазвание сервера(R3) – список всех серверов.

г) R8=R7 - R6 – список серверов, с которыми работают сотрудники только одного отдела, что и требуется определить.

 



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


Читайте в этой же книге: Реляционные ключи | Определитель NULL | РЕЛЯЦИОННЫЕ ЯЗЫКИ | РЕЛЯЦИОННАЯ АЛГЕБРА | Требования к данным | Реляционная алгебра (продолжение) | Пример 3.3. Создайте список всех арендаторов, которые осматривали объекты недвижимости, с указанием сделанных ими комментариев | Операции соединения | Естественное соединение | Полусоединение |
<== предыдущая страница | следующая страница ==>
ПРИМЕРЫ ПРИМЕНЕНИЯ РЕЛЯЦИОННОЙ АЛГЕБРЫ| Жизненный цикл приложения баз данных

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