Задание 2.
Дины отношения, моделирующие работу международной фирмы, имеющей несколько филиалов. Филиалы фирмы могут быть расположены в разных странах, это отряжено в отношении R1 (табл. 3.23). Клиенты фирмы также могут быть из разных стран, и это отражено в отношении R4 (табл. 3.26). По каждому конкретному заказу клиент мог заказать несколько разных товаров (табл. 3.24, 3.25).
Таблица 3.23
|
|
|
«Филиал» |
|
|
|
|
|
R1 |
|
|
|
|||
|
Филиал |
|
|
Страна |
|
|
|
|
|
|
|
|
|
Таблица 3.24 |
|
|
|
|
|
|
|
||
|
|
|
«Филиал» |
|
|
|
|
|
R2 |
|
|
|
|
|
|
Филиал |
Заказчик |
№ заказа |
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Таблица 3.25 |
|
|
|
|
«Заказ» |
|
|
|
|
|
R3 |
|
|
|
|
|
|
№ заказа |
|
Товар |
Количество |
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Таблица 3.26 |
|
|
|
|
«Заказчик» |
|
|
|
|
|
R4 |
|
|
|
|||
|
Заказчик |
|
|
Страна |
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
С использованием реляционной алгебры составить запросы, позволяющие выбрать:
1) Заказчиков, которые работают со всеми филиалами фирмы, но покупают только один товар.
81
2)Филиалы фирмы, которые торгуют всеми товарами.
3)Товары, которые работают с филиалами фирмы, которые расположены только в одной стране.
4)Заказчиков, которые работают с филиалами фирмы, которые расположены только в одной стране.
5)Филиалы, с которыми не работает ни один заказчик.
6)Заказчиков, которые работают только с филиалами, расположенными в той же стране, что и заказчик.
7)Заказчиков, которые покупают все товары, представленные в отношении R3.
Задание 3.
Даны отношения, моделирующие работу фирмы, занимающейся разработкой программных систем (табл. 3.27- 3.29). Каждый сотрудник административно закреплен только за одним отделом. Файлы хранятся на разных серверах. На разных серверах файлы могут иметь одинаковые имена. Создатель файла является его владельцем, поэтому у каждого файла только один владелец, но владелец файла может разрешить пользоваться файлом другим сотрудникам. Существует множество системного программного обеспечения, каждая программа может работать с одним или с несколькими файлами, расположенными на одном или нескольких серверах.
82
|
|
|
|
Таблица 3.27 |
|
|
«Сотрудник» |
|
|
|
|
|
R1 |
|
|
R4 |
|
Название файла |
Имя владельца файла |
|
Сотрудник |
Отдел |
|
|
|
|
|
|
|
Таблица 3.28
«Программа»
|
R2 |
|
Название программы |
Название файла |
Сервер |
|
|
|
Таблица 3.29
|
«Файл» |
|
R3 |
Название файла |
Название сервера |
|
|
83
С использованием реляционной алгебры составить запросы, позволяющие выбрать:
1.Файлы, которые имеют нескольких пользователей из разных отделов.
2.Программы, которые работают только с одним
файлом.
3.Файлы, которые имеют одно и тоже имя, но расположены на различных серверах и используются сотрудниками разных отделов.
4.Файлы, с которыми работают сотрудники всех
отделов.
5.Файлы, пользователями которых являются сотрудники только одного отдела.
6.Программы, которые работают со всеми
серверами.
7.Отделы, сотрудники которых не работают ни с одним файлом. То есть отделы, в которых нет ни одного сотрудника, работающего с каким-нибудь файлом.
8.Отделы, сотрудники которых работают со всеми
серверами.
9.Серверы, с которыми работают сотрудники только одного отдела.
84
4. ЗАДАЧИ И ЭТАПЫ ПРОЕКТИРОВАНИЯ БАЗ ДАННЫХ. ИСПОЛЬЗОВАНИЕ НОРМАЛЬНЫХ ФОРМ ПРИ ПРОЕКТИРОВАНИИ ПРИЛОЖЕНИЙ В РЕЛЯЦИОННЫХ СУБД. ЭТАПЫ НОРМАЛИЗАЦИИ ОТНОШЕНИЙ. МЕТОДОЛОГИИ ПРОЕКТИРОВАНИЯ
4.1. Этапы проектирования баз данных
Проектирование реляционных БД на основе принципов нормализации.
Что такое проект? Это схема - эскиз некоторого устройства, который в дальнейшем будет воплощен в реальность. Что такое проект реляционной базы данных? Это набор взаимосвязанных отношений, в которых определены все атрибуты, заданы первичные ключи отношений и заданы еще некоторые дополнительные свойства отношений, которые относятся к принципам поддержки целостности. Почему именно взаимосвязанных отношений? Потому что при выполнении запросов мы производим объединение отношений, и одни и те же значения должны в разных отношенияхтаблицах обозначаться одинаково. Действительно, если мы в одной таблице оценки будем обозначать цифрами, а в другой словами «отлично», «хорошо» и т. д., то мы не сможем объединить эти таблицы по столбцу Оценка, хотя по смыслу это для нас одно и то же, но то, что интуитивно понятно человеку, совсем не понятно «умному» компьютеру. Это проблема систем с искусственным интеллектом, которые могут решать весьма сложные интеллектуальные задачи, трудные для рядового инженера, но иногда пасуют перед простейшими интуитивными ассоциациями, понятными любому школьнику. И это необходимо учитывать. Поэтому проект базы данных должен быть очень точен и выверен. Фактически проект базы данных – это фундамент будущего программного комплекса, который будет использоваться достаточно долго и многими пользователями. И как в любом здании, можно достраивать мансарды, переделывать крышу, можно даже менять окна, но
85