Файл: Курсовая Разрабокта БД ремонтной мастерской.pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Базы данных

Добавлен: 15.11.2018

Просмотров: 4341

Скачиваний: 143

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
background image

 

 

3.  Анализ нормальных форм отношений и нормализация отношений 

Основная установка такова, что каждое отношение должно быть нормализованно до 
третьей нормальной формы. Критерии третьей нормальной формы следующие [1]: 

1.  Атрибуты отношения атомарны и неделимы. 
2.  В отношении определен первичный ключ и отсутствуют зависимые от части ключа 

атрибуты. 

3.  В отношении отсутствуют транзитивые зависимости, то есть неключевой атрибут 

не является определяющим для какого-либо другого атрибута. 

Основываясь на определении, можно сказать, что в третьей нормальной форме находятся 
следующие отношения: Клиенты, Заказы, Диагностика, Квитанции. 

Обратим внимание на отношение «Зап. части» (рис. 2): 

Зап. части

Серийный номер

Производитель

Модель

Тип

Резервация для 

заказа (FK)

Цена

 

Рисунок 2: Отношение "Зап. части" 

Оказывается, что атрибут Модель однозначно функционально определяет тип и 
производителя изделия. Для нормализации необходимо произвести декомпозицию 
отношения, потому что Модель является неключевым атрибутом.  

Результирующая модель БД, в которой все отношения будут находиться в третьей 
нормальной форме, выглядит следующим образом (рис. 3): 


background image

 

Модели

Заказы

Номер заказа

Клиент (FK)

Дата размещения

Цена ремонта

Объект ремонта

Клиенты

Имя

Фамилия

Персональный код

Телефон

Адрес

Зап. части

Серийный номер

Модель (FK)

Резервация для 

заказа (FK)

Цена

Квитанции

Диагностика

Дата проведения

Описание 

проблемы

Включают

Номер

Требуют

Размещают

Номер заказа (FK)

Номер квитанции

Включают

Цена диагностики

Заказ (FK)

1

N

1

N

1

N

Дата оплаты

1

1

Дата сдачи

Производитель

Тип

Модель

Являются

1

N

 

Рисунок 3: Нормализованная модель отношений 

 

4.  Функциональные требования к системе 

Для того чтобы система могла использоваться так, как описано выше, требуется 
реализовать следующие функциональные элементы: 

  Формы для работы с каждой из таблиц базы данных; 

форма работы с клиентами; 

форма создания заказа; 

форма управления складом, т.е. запчастями; 

форма проведения диагностики. 

  Графический интерфейс для получения разноплановых отчетов: 

Заказы, требующие диагностики, в порядке поступления – схожая логика 
так же должна использоваться на форме диагностики для повышения 
удобства работы мастера. 


background image

 

Готовые заказы, требующие оплаты – такой отчет можно формировать 
каждый день для отчетности перед руководством о проделанной работе. 

Состояние склада, доступность зап.частей по категориям – для обеспечения 
отдела снабжения регулярной информацией о необходимых запчастях. 

Состояние заказа для клиента, выполненые работы, запланированное 
использование зап.частей – используется для информирования клиента о 
состоянии дел по его заказу. 

  Интегрированное главное меню для доступа ко всем прочим разделам системы; 

 

5.  Выбор СУБД 

В  рамках  курсовой  работы  была  выбрана  рекомендуемая  СУБД  MS  Access,  которая 
рассматривается  в  учебном  курсе.  Как  ранее  было  отмечено,  данная  СУБД  обладает 
массой  преимуществ.  Во-первых,  она  является  одной  из  наиболее  понятных  и 
легкодоступных  систем  (входит  в  пакет  MS  Office),  c  которой  может  работать  как 
начинающие пользователи, так и профессионалы. Так как СУБД входит в пакет программ 
Office, известно, что она имеет полную интегрированность с MS Word, Excel, Power Point, 
что  позволяет  одновременно  задействовать  дополнительные  программы  от  Microsoft,  в 
зависимости от задачи. Для облегчения процесса работы в Access представлена широкая 
справочная  система,  любой  пользователь,  без  лишних  трудностей,  может  к  ней 
обратиться.  Стоит  отметить,  что  СУБД  наделена  набором  специальных  мастеров 
«Wizards»,  позволяющие  облегчить  создания  таблиц,  форм  и  отчетов.  В  плане  удобства 
предоставления  материалов  по  курсовой  работе  MS  Access  имеет  еще  одно  достоинство 
системы  –  хранение  всего  проекта  в  одном  файле.  Это  крайне  удобно.  Несмотря  на 
отдельные  моменты  сложности  СУБД  (знание  и  умение  работы  с  формами,  отчетами, 
таблицами),  она  не  требует  большого  количества  времени  на  обучение  и  внедрение. 
Простой  пользователь  может  освоиться  в  данной  системе  и  оценить  все  преимущества 
собственноручно. 

6.  Реализация таблиц в БД 

В процессе реализации в БД были созданы 6 таблиц, представленных на рис.4-9. 

 

Рисунок 4: Таблица клиентов «Clients» 


background image

 

 

Рисунок 5: Таблица заказов «Orders» 

 

Рисунок 6: Таблица произведенной диагностики «Diagnostics» 

 

Рисунок 7: Таблица выписанных накладных «Receipts» 

 

Рисунок 8: Таблица моделей и производителей «Models» 

 

Рисунок 9: Таблица зап. частей на складе «Parts» 

 


background image

10 

 

7.  Реализация ограничений целостности 

Поддержание целостности базы данных рассматривается как защита данных от неверных 
изменений  или  разрушений.  Выбранная  для  реализации  платформа  MS  Access  имеет 
практически все средства для обеспечения поддержания целостности. 
 
Выделяют три группы правил целостности: 
 

 

Целостность по сущностям. 

 

Целостность по ссылкам. 

 

Целостность, определяемая пользователем. 
 

Целостность по сущностям обеспечена созданием первичных и альтернативных ключей, 
определением типов данных и запретом для некоторых атрибутов принимать 
неопределенное значение. 
 
Ссылочная целостность обеспечена созданием 5 связей, и, соответственно, 5 внешних 
ключей. На рис.10 показана реализованная в СУБД MS Access схема взаимосвязи таблиц в 
БД. 

 

Рисунок 10: Схема БД 

 

8.  Реализация запросов к БД 

GetFinishedOrders: Запрос выводит все завершенные заказы для которых не были 
выставлены счета. 

SELECT Orders.OrderId 
 

,Orders.OrderFinishDate 

 

,Clients.ClientName + ' ' + Clients.ClientSurname AS ClientName 

 

,Max(Orders.WorkPrice) AS FixPrice 

 

,Sum(Parts.Price) AS SumOfPrice 

 

,Max(Diagnostics.DiagPrice) AS MaxOfDiagPrice 

FROM (((Clients  
INNER JOIN Orders ON Clients.PersonalNumber = Orders.ClientId)  
LEFT JOIN [Diagnostics] ON Orders.OrderId = Diagnostics.OrderId)  
LEFT JOIN Parts ON Orders.OrderId = Parts.OrderReservation) 
LEFT JOIN Receipts ON Orders.OrderId = Receipts.OrderId 
WHERE (((Orders.OrderFinishDate) IS NOT NULL)) AND ((Receipts.PayDate) Is Null)) 
GROUP BY Orders.OrderId