
- •«Астраханский государственный университет»
- •Дипломный проект
- •Введение
- •1 Технический проект
- •1.1 Описание предметной области
- •1.2 Обоснование необходимости внедрения ис
- •1.3 Обзор существующих программных продуктов
- •1.4 Постановка задачи
- •2 Рабочий проект
- •2.1 Функциональное проектирование системы
- •2.2 Инфологические проектирование системы
- •2.2.1 Логическое проектирование
- •2.2.2 Физическое проектирование
- •2.3 Используемые классификаторы и системы кодирования
- •2.4 Разработка интерфейса ис
- •3 Программа и методика испытаний разработанной системы
- •3.1 Обоснование выбора субд
- •3.2 Обоснование выбора языка программирования
- •3.7 Входные и выходные данные
- •4 Экономический и социальный эффект от внедрения проекта
- •4.1 Оценка уровня качества разрабатываемого программного продукта
- •4.2 Организация и планирование работ по разработке проекта
- •4.3 Расчет затрат на разработку проекта
- •4.4 Расчет эксплуатационных затрат
- •4.5 Расчет экономического эффекта и показателей экономической эффективности
- •5 Безопасность жизнедеятельности и эргономика
- •5.1 Анализ опасных и вредных производственных факторов на рабочем месте пользователя пэвм
- •5.2 Требования безопасности при работе с пэвм
- •5.3 Инструкция по охране труда для сотрудника одела телекоммуникационных технологий
- •Заключение
- •Список использованных источников
- •Приложение а. Текст программы
- •Акт внедрения
2.2.1 Логическое проектирование
В разрабатываемой системе можно выделить следующие сущности: Группы, Реквизиты, Клиенты, МатЦенности, Заказы, МатЦенностиПоЗаказу, Работники, СоставЗаказа, Специализации.
ER-диаграмма системы на логическом уровне представлена на рисунке 2.3.
Рисунок 2.3 ER-диаграмма системы на логическом уровне
Данные в БД должны обладать свойством целостности. Под целостностью данных понимается корректность данных и их непротиворечивость в любой момент времени. Поддержание целостности базы данных может рассматриваться как защита данных от неверных изменений или разрушения (этот вопрос не относится к незаконным изменениям и разрушениям, которые являются проблемой безопасности).
Выделяют три группы правил целостности [4, 5]:
целостность по сущностям. Объекту или сущности реального мира в реляционных базах данных соответствуют кортежи отношений. Требование состоит в том, что любой кортеж любого отношения отличим от любого другого кортежа этого отношения, т.е. другими словами, любое отношение должно обладать первичным ключом. Это требование автоматически удовлетворяется, если в системе не нарушаются базовые свойства отношений. Первичный ключ – это минимальный набор атрибутов, по значениям которых можно однозначно найти требуемый экземпляр сущности;
целостность по ссылкам. База данных не должна содержать несогласованных значений внешних ключей. Правило утверждает, что если В ссылается на А, тогда А должно существовать. Говорят, что отношение, в котором определен внешний ключ, ссылается на соответствующее отношение, в котором такой же атрибут является первичным ключом. Требование целостности по ссылкам, или требование внешнего ключа состоит в том, что для каждого значения внешнего ключа, появляющегося в ссылающемся отношении, в таблице, на которую ведет ссылка, должен найтись кортеж с таким же значением первичного ключа, либо значение внешнего ключа должно быть неопределенным (т.е. ни на что не указывать);
целостность, определяемая пользователем. У пользователя (или у разработчика) базы данных должна быть возможность определить, какие операции должны быть запрещены, а какие разрешены, нужны ли для разрешенных операций компенсирующие, и если да, то какие (т.е. возможность каскадного удаления).
В разрабатываемой структуре БД учтены основные правила целостности. Каждая сущность идентифицируется уникальным ключом, и разработана система внешних ключей. База данных не содержит несогласованных значений внешних ключей, то есть при работе с записями происходит каскадное обновление связанных полей и каскадное удаление связанных записей.
Целостность, определяемая пользователем, поддерживается ограничениями в таблицах базы данных на ввод неотрицательных значений, а также обеспечением выбора значений внешних ключей из списков без разрешения варианта ввода недопустимого значения.
Нормализация – процесс проверки и реорганизации сущностей и атрибутов, т.е. разбиения таблицы на две или более, обладающих лучшими свойствами при включении, изменении и удалении данных. Окончательная цель нормализации сводится к получению такого проекта БД, в котором каждый факт появляется лишь в одном месте, т. е. исключена избыточность информации. Это делается не столько с целью экономии памяти, сколько для исключения возможной противоречивости хранимых данных. Нормализация позволяет быть уверенным, что каждый атрибут определен для своей сущности, значительно сократить объем памяти для хранения информации и устранить аномалии в организации хранения данных. Процесс нормализации сводится к последовательному приведению структуры данных к нормальным формам – формализованным требованиям к организации данных.
Сущность находится в 1-й нормальной форме, когда все атрибуты содержат атомарные значения. Среди атрибутов не должно встречаться повторяющихся групп, т.е. несколько значений для каждого экземпляра.
Для приведения сущности к первой НФ следует [12]:
разделить сложные атрибуты на атомарные;
создать новую сущность;
перенести в нее все «повторяющиеся» атрибуты;
выбрать возможный ключ для нового № (или создать новый номер);
установить идентифицирующую связь от прежней сущности к новой, № прежней сущности станет внешним ключом для новой сущности.
Сущность находится во 2-й нормальной форме, если она находится в первой НФ и каждый не ключевой атрибут полностью зависит от первичного ключа. 2НФ имеет смысл для сущностей, имеющих сложный первичный ключ.
Для приведения сущности ко второй НФ следует [12]:
выделить атрибуты, которые зависят только от части первичного ключа, создать новую сущность;
поместить атрибуты, зависящие от части ключа, в их собственную (новую) сущность;
установить идентифицирующую связь от прежней сущности к новой.
Сущность находится в 3-й нормальной форме, если она находится во 2НФ и никакой не ключевой атрибут не зависит от другого не ключевого атрибута (не должно быть взаимозависимости между не ключевыми атрибута).
Для приведения сущности к третьей НФ следует [12]:
создать новую сущность и перенести в нее атрибуты с одной и той же зависимостью от не ключевого атрибута;
использовать атрибуты, определяющие эту зависимость в качестве первичного ключа новой сущности;
установить не идентифицирующую связь от новой сущности к старой.
Разработанная модель находится в 3-й нормальной форме.