- •База данных программной системы «полиграфия»
- •Содержание
- •1. Инфологическое проектирование
- •1.1. Анализ предметной области
- •1.2. Анализ информационных задач и круга пользователей системы
- •2. Определение требований к операционной обстановке
- •3. Выбор субд и других программных средств
- •4.2. Составление реляционных отношений
- •4. Логическое проектирование рбд
- •4.1. Преобразование er-диаграммы в схему бд
- •4.3. Нормализация полученных отношений
- •4.4. Описание групп пользователей и прав доступа
- •5. Физическое проектирование бд
- •5.1 Примеры готовых запросов
- •Примеры индексов
4.4. Описание групп пользователей и прав доступа
Опишем для каждой группы пользователей права доступа к каждой таблице и к каждому атрибуту:
Администратор БД: имеет доступ ко всем данным, может изменять структуру базы данных и связи между отношениями. Устанавливает права доступа для всех остальных групп.
Управляющий СП: имеет доступ по чтению ко всем данным и доступ по записи к отношениям Services, Employers, Distribution.
Кладовщик: имеет доступ по чтению и записи к отношениям Stuff, Stuff’s Order, Stuff’s Order – Stuff, Stuff’s Type, Stuff’s Status.
Оператор: имеет доступ по чтению и записи к отношениям Client’s Order, Stuff’s Order, Client Order’s Status. Каждый оператор может читать следующие отношения – Clients, Stuff, Services, Cleint’s Order – Services.
Web-сайт: имеет доступ по чтению к отношению Services и записи к отношениям Clients, Client’s Order
5. Физическое проектирование бд
5.1 Примеры готовых запросов
Отобразить список всех услуг:
select SRV_TITLE from Services order by SRV_TITLE;
Отобразить список всех расходных материалов заданного типа:
select * from Stuff where S_TYPE like (‘%”тип”%’);
Отобразить все необработанные заказы клиентов:
select * from Clients’s_Order where CO_EMP_EXECUTE_ID is NULL order by
CO_ENTRY_DATE;
Найти заказ клиента по его идентификатору:
select * from Client’s_Order where CO_ID=”идентификатор”;
Отобразить все заказы расходных материалов:
select * from Stuff’s_Order order by SO _DATE;
Отобразить все почтовые рассылки:
select * from Distribution;
Найти всех клиентов, подписавшихся на почтовую рассылку:
select * form Clients where CL_SUBSCRIPTION =true.
Примеры индексов
Анализ готовых запросов показывает, что для повышения эффективности работы с данными необходимо создать индексы для всех внешних и первичных ключей. Приведём примеры создания индексов:
create index SRV_IDS on Services(SRV_ID );
create index EMP_IDS on Employers( EMP_ID );
create index EMP_POSTS on Employers( EMP_POST );
create index CL_IDS on Clients ( CL_ID );
