Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Проектирование базы данных




 

Логическое проектирование

Логическая модель данных описывает понятия предметной области и их взаимосвязи и является прототипом будущей базы данных. Логическая модель разрабатывается в терминах информационных понятий, но без какой-либо ориентации на конкретную СУБД. Наиболее широко используемым средством разработки логических моделей баз данных являются диаграммы "сущность-связь" - Entity-Relationship (ER-диаграммы). Следует заметить, что логическая модель данных, представленная ER-диаграммами, в принципе, может быть преобразована как в реляционную модель данных, так и в иерархическую, сетевую, постреляционную.

Очевидно, что качество разработанной базы данных всецело зависит от качества выполнения отдельных этапов её проектирования. Огромное значение имеет качественная разработка логической модели базы данных, так как она, с одной стороны, обеспечивает адекватность базы данных предметной области, а с другой стороны, определяет структуру физической базы данных и, следовательно, её эксплуатационные характеристики.

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

Определенный набор отношений обладает лучшими свойствами при включении, модификации и удалении данных, если он отвечает определенным требованиям нормализации отношений. Нормализация отношений — это формальный аппарат ограничений на их формирование, который позволяет устранить дублирование данных, обеспечить их непротиворечивость и уменьшить затраты на поддержание базы данных.

На практике наиболее часто используются понятия первой, второй и третьей нормальных форм.

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

Товар – непосредственно сам перемещаемый объект. Эта сущность обладает следующими атрибутами:

Название (Name) – краткое наименование товара

Описание (Description) – полное наименвоание товара

Единица измерения (Edizm) – единица измерения товара: шука, упаковка, килограмм и т.д.

Цена (Price) – конечная розничная цена. Данная цена обозначается на соответствующем ценнике.

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

Название (Name) – краткое наименование поставщика

Описание (Description) – полное наименование поставщика

ФИО (FIO_contact) – ФИО контактного лица данного поставщика

Телефон (Tel) – номер контактного телефона поставщика

Факс (Fax) - номер контактного факса поставщика

Адрес (Address) – юридический адрес поставщика

Магазин – характеризует конкретный магазин розничной сети. Эта сущность обладает следующими атрибутами:

Название (Name) – официальное юридическое название магазина

Телефон (Tel) – номер контактного телефона магазина

Факс (Fax) – номер контактного факса магазина

Адрес (Address) – юридический адрес магазина

ФИО (FIO_contact) – ФИО контактного лица данного магазина

Склад – место хранения товара. Эта сущность обладает следующими атрибутами:

Название (Name) – общепринятое наименование склада

Телефон (Tel) – номер контактного телефона склада

Адрес (Address) – адрес склада

В результате в нашей базе данных описанные сущности будут представлять собою таблицы-справочники, то есть те таблицы, данные из которых требуются для работы других таблиц.

Для описания движения товара необходимо выделать такие сущности, как Приходная накладная и Расходная накладная:

Приходная накладная – документ, создаваемый при каждом движении товара "в" магазин, то есть при его покупке у поставщика. Это внутренний документ, необходимый для проводки факта движения товара. Как правило он составляется на основании расходной накладной поставщика. Эта сущность обладает следующими атрибутами:

Дата (Date) – дата проводки документа.

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

Список соответствующих количеств товаров – каждому товару в соответствие ставится его количество.

Список соответствующих цен товаров – каждому товару в соответствие ставится его цена, то есть цена покупки товара у поставщика.

Поставщик – в данном случае "продавец" товара.

Склад – склад, в который физически поставляется товар.

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

Дата (Date) – дата проводки документа.

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

Список соответствующих количеств товаров – каждому товару в соответствие ставится его количество.

Список соответствующих цен товаров – каждому товару в соответствие ставится его розничная цена, т.е. конечная цена для клиента.

Магазин – магазин, от имени которого поставляются указанные товары. Именно "от имени", а не непосредственно из магазина, так как один и тот же магазин может продавать товары с различных складов. А случай, когда магазин является складом – частный.

Склад – склад, из которого физически поставляется товар.

Таким образом, проявляется существенное различие между приходными и расходными документами. По приходной накладной товар приходит на склад. По расходной – продается\перемещается со склада "от имени" того или иного магазина.

При обработке перечисленных сущностей получаем диаграмму "сущность-связь":

 


Следует особо отметить, что связи на данной диаграмме означают ссылку одной сущности на другую. Например, сущность "Приход" ссылается на сущность "Товар". Но эти обозначения не говорят о характере связей, который будет определен в следующем разделе.

 

Физическое проектирование

Физическая модель данных строится на базе логической модели и описывает данные уже средствами конкретной СУБД. Отношения, разработанные на стадии логического моделирования, преобразуются в таблицы, атрибуты в столбцы, домены в типы данных, принятых в выбранной конкретной СУБД. Результатом физического моделирования является генерация программного кода базы данных на соответствующем выбранной СУБД диалекте структурированного языка запросов SQL.

Итак, нормализуем отношения логической модели данных, установив характер связей в разрабатываемой схеме базе данных:

"Приход" – "Товар": данная связь носит характер "многие ко многим", так как одной приходной накладной могут соответствовать несколько товаров и, в то же время, одному товару могут соответствовать несколько приходных накладных. Связь "многие ко многим" предполагает физическую реализацию в виде двух связей "один ко многим" (таблица "Приход_ Товар").

"Приход" – "Поставщик": данная связь носит характер "один ко многим", так как одной приходной накладной может соответствовать только один поставщик, но одному поставщику могут соответствовать несколько приходных накладных.

"Приход" – "Склад": данная связь носит характер "один ко многим", так как одной приходной накладной может соответствовать только один склад, но одному складу могут соответствовать несколько приходных накладных.

"Расход" – "Товар": данная связь носит характер "многие ко многим", так как одной расходной накладной могут соответствовать несколько товаров и, в то же время, одному товару могут соответствовать несколько расходных накладных. Связь "многие ко многим" предполагает физическую реализацию в виде двух связей "один ко многим" (таблица "Расход_ Товар").

"Расход" – "Склад": данная связь носит характер "один ко многим", так как одной расходной накладной может соответствовать только один склад, но одному складу могут соответствовать несколько расходных накладных.

"Расход" – "Магазин": данная связь носит характер "один ко многим", так как одной расходной накладной может соответствовать только один магазин, но одному магазину могут соответствовать несколько расходных накладных.

В результате более детальной проработки диаграммы сущность-связь необходимо также выделить таблицу "Едизм", содержащую описание единиц измерения товаров.

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

 


Глава 4: Разработка

 

Фаза "Разработка" - основная по времени и потреблению ресурсов. Она же требует наибольшего числа итераций. Цель этой фазы – создание приложения, а основная задача – завершить разработку приложения и убедиться, что оно готово к переходному периоду. К началу переходного периода надо убедиться, что приложение достигло первоначальной стабильности и готово к бета-тестированию. Инкрементальный подход к разработке рекомендует последовательно наращивать функциональные возможности продукта.

На фазе "Разработка":

· расширяется список схем использования, включая уточнение, детализацию и описание всех схем

· завершается выполнение первых трех этапов

· начинается тестирование (обычно на этой фазе выполняется примерно 15% этапа "Тестирование")

· поддерживается целостность приложения – все вносимые изменения не должны выходить за рамки утвержденной архитектуры

· ведется управление рисками, выявленными на предыдущих стадиях

Фаза "Разработка" завершается этапом "Готовность к опытной эксплуатации".

Borland Delphi 2005

 

Delphi 2005, как и вся линейка ALM инструментов является новейшим решением Borland в своем сегменте.

Среди главных новшеств этого продукта (ранее данная версия носила кодовое название Diamondback) нужно отметить два: в нем впервые реализована возможность использования двух языков — собственно Delphi (диалект Pascal) и C#, а также возможность создания приложений для Win32 (на Delphi) и.NET (Delphi и C#).

Появление Delphi 2005 сдало важным шагом в эволюционном процессе развития инструментальных средств Borland для архитектуры Win32 и.NET.

Как известно, корпорация Borland еще в 2001 году одной из первых среди независимых поставщиков подключалась к программе Visual Studio.NET Integration Partner и, более того, первой получила лицензию на SDK.NET Framework, объявив о намерении создания собственных средств разработки для новой по тем временам платформы Microsoft.NET.

В 2003 г. Borland представила C#Builder и Delphi 8 — первые два инструмента для создания.NET-приложений, реализованные на базе нового ядра IDE для Windows, поддерживающего несколько различных систем разработки для Win32 и.NET (проект с кодовым названием Gallileo). Теперь на смену им пришел новый пакет Delphi 2005, объединивший оба средства (для.NET) с возможностями Delphi 7 (Win32).

По мнению представителей Borland, нынешний вариант инструмента — это самое значительное обновление Delphi за последние годы, выполненное в полном соответствии со стратегией оптимизации процесса создания программного обеспечения Software Delivery Optimization, разработанной корпорацией.

Среда Delphi 2005 не только поддерживает несколько языков, SDK Win32 и.NET, но и обладает целым рядом принципиально новых усовершенствований. В ее состав входит большое количество принципиально новых функциональных возможностей IDE, призванных упростить выполнение разработчиками своих повседневных задач, повысить производительность их труда и оптимизировать работу с исходными текстами программ.

В числе этих возможностей — прогрессивные средства рефакторинга текстов программ, развитая справочная система, подробные сообщения об ошибках (Help Insights и Error Insights), SyncEdit, History Management и новые расширения языка Delphi.

Особо нужно выделить новую платформу ECO II (Enterprise Core Objects), предназначенную для создания программных средств корпоративного класса для.NET с использованием архитектуры Model Driven Architecture (MDA), что позволяет ускорить разработку и повысить качество сложных приложений, а также улучшить возможности их сопровождения.

ECO II — это полнофункциональная система автоматического создания диаграмм и объектов, обладающая отлично масштабируемым кэшем объектов.NET и расширенными возможностями объектов корпоративного класса, такими, как откат/возврат, постоянные свойства, контроль версий и проведение транзакций.

Кроме того, Delphi 2005 помогает группам разработчиков осуществлять сопровождение и доработку уже выпущенных ими приложений для Windows с использованием новых технологий и возможностей.

Продукт позволяет работать с языками программирования для Windows с применением Win32 и.NET SDK, интегрируется с другими решениями Borland, обеспечивающими управление жизненным циклом приложений, в первую очередь StarTeam и Optimizeit.

Задача интеграции с системой StarTeam — упростить управление ресурсами исходных текстов программ и улучшить взаимодействие между участниками групп разработчиков, а подключение Optimizeit Profiler для.NET может помочь автоматизировать тестирование программных модулей и улучшить качество и эксплуатационные характеристики приложения в целом.

По оценкам экспертов, Delphi 2005 в его нынешнем виде уже догнал по функциональным возможностям создания решений корпоративного уровня Java-инструмент Borland — JBuilder.

Существует три выпуска Delphi 2005:

· Architect для разработки приложений на основе моделей;

· Enterprise для групп разработчиков, которые создают приложения корпоративного класса, работающие с базами данных;

· Professional для отдельных программистов, занятых построением приложений для Web и написанием программ с графическим пользовательским интерфейсом.

Разработчик Системы использовал версию Delphi 2005 Professional. Ее возможностей вполне хватает для реализации всех поставленных задач. Разработчик Системы имеет опыт работы в среде Delphi начиная с версии 5. Переход на 2005ую версию не вызвал практически никаких проблем. Более того, порадовала интеграция с StarTeam 2005. В остальном всё осталось прежним: отличный объектно-ориентированный подход, мощнейшая поддержка библиотек компонентов, прекрасная справочная система.

Следует отдельно отметить, какую неоценимую помощь при создании Системы оказали литературные источники 2, 3, 4, 6.

 

Архитектура

 

Данные, полученные на этапе "Исследование", были проанализированы, в результате чего была составлена предварительная схема архитектуры будущей системы. В системе четко выделились две части: Клиент и Сервер. В данном контексте клиент отвечает за предоставление интерфейса для работы с Системой. Сама же бизнес-логика реализуется на Сервере. Таким образом, наш Клиент является тонким – а именно, веб-браузером. Сервер же делится на SQL Сервер и Сервер приложений. SQL Сервер хранит данные, а Сервер приложений обеспечивает бизнес логику Системы. Таким образом, образуется трехзвенная архитекрура Системы:

 


 

Преимущества трехзвенной архитектуры

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

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

Таким образом, при использовании сервера приложений можно решить ряд проблем, встающих перед разработчиками традиционных двухзвенных систем.

 

HTML прототипы

 

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

Для данной Системы прототипы разрабатывались в среде интегрированной разработки Delphi 2006. Дело в том, что к моменту реализации Системы вышла новая версия Delphi, немного более удобная предыдущей в отношении проектирования ASP.NET страниц.

На данном рисунке представлен прототип окна входа в систему (авторизации):

 

 

На данном рисунке представлен прототип окна просмотра Приходных накладных:

 


 

Для конечного пользователя прототипы компилировались в HTML страницы:

 


 

Бизнес логика

 

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

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

Бизнес логика реализовывалась на языке Delphi в одноименной среде разработки. Для соединения с базой данных использовались компоненты SqlConnection, SqlDataAdapter, DataSet, SqlCommand:


 

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...