Главная » Все файлы » Просмотр файлов из архивов » PDF-файлы » Н.В. Усманова - Проектирование баз данных (Методические указания по выполнению курсовой работы)

Н.В. Усманова - Проектирование баз данных (Методические указания по выполнению курсовой работы), страница 7

PDF-файл Н.В. Усманова - Проектирование баз данных (Методические указания по выполнению курсовой работы), страница 7 Базы данных (111667): Книга - 5 семестрН.В. Усманова - Проектирование баз данных (Методические указания по выполнению курсовой работы): Базы данных - PDF, страница 7 (111667) - СтудИзба2021-09-20СтудИзба

Описание файла

PDF-файл из архива "Н.В. Усманова - Проектирование баз данных (Методические указания по выполнению курсовой работы)", который расположен в категории "". Всё это находится в предмете "базы данных" из 5 семестр, которые можно найти в файловом архиве НИУ «МЭИ» . Не смотря на прямую связь этого архива с НИУ «МЭИ» , его также можно найти и в других разделах. .

Просмотр PDF-файла онлайн

Текст 7 страницы из PDF

Схема отношения ЗАКАЗЧИКИ (Clients)Содержание поляНомер заказчикаИмя поляC_IDЗаказчикАдрес заказчикаКонтактное лицоТелефонC_COMPANYC_ADRC_PERSONC_PHONEТип, длинаN(4)V(40)V(50)V(50)V(30)Примечаниясуррогатныйпервичный ключобязательное полеобязательное полеобязательное полеТаблица 12. Схема отношения ПРОЕКТЫ (Projects)Содержание поляНомер проектаИмя поляP_IDТип, длинаN(6)Название проектаСокращённое названиеОтделP_TITLEP_ABBRP_DEPARTV(100)С(10)V(12)ЗаказчикРуководительP_COMPANYP_CHIEFДата начала проектаДата окончания проектаP_BEGINP_ENDDDРеальная дата окончанияP_FINISHDСтоимость проектаP_COSTN(4)N(4)N(10)Примечанияобязательноеуникальное полеобязательное полепервичный ключвнешнийключ(кDeparts)внешний ключ (к Clients)внешнийключ(кEmployees)обязательное полеобязательноеполе,больше даты началапроектабольше даты началапроектаобязательное поле, > 0Таблица 13. Схема отношения ЭТАПЫ ПРОЕКТА (Stages)Содержание поляПроектИмя поляS_PROНомер этапаНазвание этапаДата начала этапаS_NUMS_TITLES_BEGINТип, длинаC(10)N(2)V(200)D31Примечаниявнешнийсоставнойключ(к первичныйProjects)ключобязательное полеобязательное полеДата окончания этапаS_ENDРеальная дата окончанияСтоимость этапаПолученная сумма поэтапуФорма отчётностиS_FINISHS_COSTS_SUMDN(10)N(10)S_FORMV(100)Dобязательное поле, большедаты началабольше даты начала этапаобязательное полеобязательноеполе,значение по умолчанию – 0обязательное полеТаблица 14.

Схема отношения УЧАСТИЕ (Job)Содержание поляИмя поляПроектJ_PROТип,длинаC(10)СотрудникJ_EMPN(4)Примечания*внешний ключ (к составнойProjects)первичныйвнешний ключ (к ключEmployees)обязательное полеРольJ_ROLEV(20)ДоплатаJ_BONUSN(2)Схема базы данных после нормализации приведена на рис. 6.Рис. 6. Окончательная схема БД проектной организации2.4. Определение дополнительных ограничений целостностиПеречислим ограничения целостности, которые не указаны в табл.

1–10.1. Атрибут Вид образования может принимать одно из следующих значений:'начальное', 'среднее', 'средне-специальное', 'высшее'.2. Атрибут Роль может принимать одно из двух значений: 'исполнитель' или'консультант'.323. В поле Доплата хранится величина доплаты сотруднику за участие в проекте (впроцентах к его окладу). Значение поля больше либо равно 0.4. Нумерация в поле Номер этапа начинается с 1 и является непрерывной длякаждого проекта.5. Дата начала первого этапа проекта должна соответствовать началу проекта вцелом, дата завершения последнего этапа должна соответствовать завершениюпроекта в целом.

Этапы не должны пересекаться по времени и между ними не должнобыть разрывов.6. Стоимость проекта должна быть равна сумме стоимостей всех этапов этогопроекта. Ограничения 4-6 нельзя реализовать в схеме отношения. В реальных БДподобные ограничения целостности реализуются вручную или программно (черезвнешнее приложение или специальную процедуру контроля данных – триггер).Примечание. Вопросы архивирования данных в этом пособии подробно не рассматриваются. Носледует отметить, что обычно архив является частью БД и представляет собой набор отдельныхтаблиц, которые не связаны с оперативной частью БД внешними ключами.

Структура архивныхтаблиц либо соответствует структуре тех оперативных таблиц, данные которых подлежатархивированию, либо представляет собой денормализованную таблицу, соответствующуюдекартову произведению оперативных таблиц. Данные в архивные таблицы переносятсяспециальной программой (или набором запросов) автоматически или по команде пользователя. Поистечении периода хранения данные могут удаляться из архива.2.5.

Описание групп пользователей и прав доступаОпишем для каждой группы пользователей права доступа к каждой таблице. Правадоступа должны быть распределены так, чтобы для каждого объекта БД был хотя быодин пользователь, который имеет право добавлять и удалять данные из объекта.Права приведены в табл. 11. Используются следующие сокращения:s – чтение данных (select);i – добавление данных (insert);u – модификация данных (update);d – удаление данных(delete).Таблица 15.

Права доступа к таблицам для групп пользователейТаблицыОтделыКомнатыДолжностиСотрудникиАдресателефоныОбразованиеЗаказчикиПроектыЭтапыпроектовУчастиеРуководителиорганизацииSSSIUDSSSГруппы пользователей (роли)Сотрудник Руководител Бухгалтери отд.и проектовыкадровSIUDSSSUIDSSSSUIDSSSUIDSSSUIDSSIUDSIUDSIUDSSSUISS33SSУчастникипроектовSПрава на изменение данных в таблице УЧАСТИЕ будут назначены черезпредставление, т.к. изменять данные этой таблицы может только руководительпроекта.Права назначает администратор БД (или администратор безопасности, еслисистема сложная и администраторов несколько).Приведём описание схемы БД на DDL.ГЛАВА 3.

ФИЗИЧЕСКОЕ ПРОЕКТИРОВАНИЕ РЕЛЯЦИОННОЙ БАЗЫДАННЫХ3.1. Создание таблиц1. Отношение Departs (отделы):create table departs (d_id varchar(12) primary key,d_name varchar(100) not null);2. Отношение Rooms (комнаты):create table rooms (d_depart varchar(12)references departs(d_id),r_room numeric(4) not null,r_phone varchar(20),unique(r_room, r_phone));3. Отношение Posts (должности):create table posts (p_post varchar(30) primary key,p_salary numeric(8,2) not null check(p_salary>=12130));4. Отношение Employees (сотрудники):create table employees (e_id numeric(4) primary key,e_fname varchar(25) not null,e_lname varchar(30) not null,e_born datenot null,e_sex char(1) check(e_sex in ('ж','м')),e_pasp char(10)not null unique,e_date datenot null,e_given varchar(50) not null,e_inn char(12)not null unique,e_pens char(14)not null unique,e_depart varchar(12) references departs,e_post varchar(30) references posts,e_room numeric(4) not null,e_phone varchar(20) not null,e_login varchar(30),foreign key(e_room,e_phone)references rooms(r_room,r_phone));(Если внешний ключ ссылается на первичный ключ отношения, его можно неуказывать, как в случае ссылок на Departs и Posts).345.

Отношение Edu (образование):create table edu (u_id numeric(4) references employees,u_type varchar(20) not null,u_spec varchar(40),u_diplom varchar(15),u_year foat(4) not null,check(u_spec in ('начальное', 'среднее', 'высшее', 'среднеспециальное')));6. Отношение AdrTel (адреса-телефоны):create table adrtel (a_id numeric(4) references employees,a_adr varchar(50),a_phone varchar(30));7. Отношение Clients (заказчики):create table clients (c_id numeric(4) primary key,c_company varchar(40) not null,c_adr varchar(50) not null,c_person varchar(50) not null,c_phone varchar(30));8.

Отношение Projects (проекты):create table projects (p_id numeric(6) not null unique,p_title varchar(100) not null,p_abbr char(10)primary key,p_depart varchar(12) references departs,p_company numeric(4) references clients,p_chief numeric(4) references employees,p_begin date not null,p_end date not null,p_finish date,p_cost numeric(10) not null check(p_cost>0),check (p_end>p_begin),check (p_finish is null or p_finish>p_begin));9. Отношение Stages (этапы проектов):create table stages (s_pro char(10)references projects,s_num numeric(2) not null,s_title varchar(200) not null,s_begin datenot null,s_end datenot null,s_finish date,s_cost numeric(10) not null,s_sum numeric(10) not null,s_form varchar(100) not null,35check (s_cost>0),check (s_end>s_begin),check (s_finish is null or s_finish>s_begin));10.

Отношение Job (участие):create table job (j_pro char(10)references projects,j_emp numeric(4) references employees,j_role varchar(20) not null,j_bonus numeric(2) not null,check(j_bonus>0),check (j_role in ('исполнитель', 'консультант')));3.2. Создание представлений (готовых запросов)Приведём примеры нескольких готовых запросов (представлений):1. Список всех текущих проектов (getdate – функция, возвращающая текущуюдату, определена в СУБД MySQL; в других системах аналогичная функция можетназываться по-другому, например, now() в MS Access, sysdate в Oracle ит.д.):create view curr_projects asselect *from projectswhere p_begin<=sysdate and sysdate<=p_end;2.Определение суммы по текущим проектам, полученной на текущую дату:create or alter view summ (title, cost, total) asselect p_title, p_cost, sum(s_sum)from curr_projects, stageswhere p_abbr=s_progroup by p_title, p_cost;3.

Данные о проектах для руководителя проектов:create or alter view my_projects asselect *from projects pwhere exists (select * from employees ewhere e.e_id=p.p_chief and e.e_login=user);Функция user возвращает имя пользователя, выполняющего текущий запрос. Такимобразом, каждый пользователь получит данные только о тех проектах, руководителемкоторых является. Используя аналогичный способ, можно ограничить участникапроекта данными только о сотрудниках тех проектов, в которых он сам участвует.4. Данные об участниках проектов для руководителя проектов:Create or alter view my_staff asselect j.*from job jwhere exists (select *from employees e, projects pwhere e.e_id=p.p_chief and e.e_login=userand j.j_pro=p.p_abbr);365. Данные о других участниках проекта:create or alter view my_emps asselect je.j_pro, e.e_fname, e.e_lname e_name,e_depart, e_post, e_phone, e_roomfrom employees e, job jewhere e.e_id=je.j_emp and exists (select *from job jm, employees mwhere m.e_id=jm.j_emp andm.e_login=user and je.j_pro=jm.j_pro);Для того чтобы можно было работать с этими представлениями, соответствующимпользователям нужно назначить права доступа к представлениям.

Эти праваперечислены в табл. 16.Таблица 16. Права доступа к представлениямПредставленияТекущиепроекты(curr_projects)Сумма по текущимпроектам (summ)Проектыдляруководителя(my_projects)Участники проектовдля руководителей(my_staff)Участники проектов(my_emps)Группы пользователей (роли)РуководителиРуководителиУчастники проектоворганизациипроектовSSSSSIUDSIUDS3.3. Назначение прав доступаПрава доступа пользователей предоставляются с помощью команды GRANT.Рассмотрим для примера права сотрудника компании ok_user, который являетсясотрудником отдела кадров. Права доступа к отношениям Departs и Rooms могут бытьописаны следующим образом:grant select, insert, update, delete on departs to ok_user;grant select, insert, update, delete on rooms to ok_user;Права доступа руководителей проектов (сотрудников, staff) к представлениюmy_projects могут быть описаны следующим образом:grant select, insert, update, delete on my_projects tostaff;Если сотрудник не является руководителем проекта, он не получит данных черезэтот запрос и не сможет воспользоваться правами доступа к нему.Права доступа участников проекта (сотрудников, staff) к представлениюmy_emps могут быть описаны следующим образом:grant select on my_emps to staff;37Если сотрудник не является участником проекта, он не получит данных через этотзапрос и не сможет воспользоваться правами доступа к нему.3.4.

Создание индексовАнализ готовых запросов показывает, что для повышения эффективности работыс данными необходимо создать индексы для всех внешних ключей. Приведём примерысоздания индексов:create index e_posts on employees(e_post);create index p_chief on projects(p_chief);create index e_tel on employees(e_room, e_phone);3.5. Разработка стратегии резервного копированияИнтенсивность обновления разработанной базы данных низкая, поэтому дляобеспечения сохранности вполне достаточно проводить полное резервноекопирование БД раз в день (перед окончанием рабочего дня). Для разработанной БДнет необходимости держать сервер включенным круглосуточно, поэтому можносоздать соответствующее задание операционной системы, которое будетавтоматически запускаться перед выключением сервера.38.

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5224
Авторов
на СтудИзбе
426
Средний доход
с одного платного файла
Обучение Подробнее