Автор работы: Пользователь скрыл имя, 29 Мая 2013 в 17:59, курсовая работа
На курсовое проектирование была выбрана тема каталогизации программного обеспечения общего назначения.
Объектом разработки выступала база данных и клиентское приложения для работы с ней для работы со структурированным каталогом программ. Данный каталог предлагает всем желающим получить информацию об интересующих его программах, а разработчикам добавлять и изменять свои программы в каталоге.
При разработке серверной части проекта была использована СУБД MySQL, которая зарекомендовала себя как СУБД для веб-приложений. Клиентская часть проекта написана на скриптовом языке PHP с использованием процедурного подхода к программированию.
Для этого осуществляются следующие мероприятия:
Для создания схем концептуальной модели привлекаются специалисты ПО, не владеющие специальной терминологией обработки данных. Поэтому предпочтение надо отдавать простым, понятным, легко читаемым способам отображения объектов ПО я их взаимосвязей на схеме, возможно с использованием естественного языка.
Для представления концептуальной модели используют различные методы и модели, например, модель "сущность" - "атрибут" - "связь",которая описывает ПО в виде UML-диаграмм. UML-диаграммы - понятны, легко читаемы даже не специалистами и в тоже время достаточно формализованы и широко распространены.
В нотации языка UML определены следующие виды канонических диаграмм:
Диаграмма вариантов использования (Use Case Diagram) представляет собой наиболее общую концептуальную модель сложной системы, которая является исходной для построения всех остальных диаграмм.
Визуальное моделирование в UML можно
представить как некоторый
Разработка диаграммы вариантов использования преследует следующие цели:
Суть данной диаграммы состоит в следующем, проектируемая система представляется в виде множества сущностей или актеров, взаимодействующих с системой с помощью так называемых вариантов использования. При этом актером (actor) или действующим лицом называется любая сущность, взаимодействующая с системой извне. Это может быть человек, техническое устройство, программа или любая другая система, которая может служить источником воздействия на моделируемую систему так, как определит сам разработчик. В свою очередь, вариант использования (use case) служит для описания сервисов, которые система предоставляет актеру. Другими словами, каждый вариант использования определяет некоторый набор действий, совершаемый системой при диалоге с актером. При этом ничего не говорится о том, каким образом будет реализовано взаимодействие актеров с системой. На рисунке 1 представлена диаграмма вариантов использования, при помощи которой разработана основная концепция разрабатываемой информационной системы.
Рисунок 1 – Диаграмма вариантов использования пользовательской части
Рисунок 2 – Диаграмма вариантов использования администраторской части
Диаграмма классов (Class Diagram), по своей сути, логическая модель, отражающая статические аспекты структурного построения сложной системы.
Диаграмма классов предназначена для представления статической структуры модели системы в терминологии классов объектно-ориентированного программирования. При этом диаграмма классов может содержать интерфейсы, пакеты, отношения и даже отдельные экземпляры классификаторов, такие как объекты и связи. Когда говорят о данной диаграмме, имеют в виду статическую структурную модель проектируемой системы, т. е. графическое представление таких структурных взаимосвязей логической модели системы, которые не зависят от времени.
Рисунок 2 – Диаграмма классов
Остальные диаграммы в данной предметной области можно не рассматривать.
2.4 Логическое проектирование БД
Логическое проектирование основано на модели логического уровня и представляет собой описание и построение схем связей между элементами данных безотносительно к их содержанию и среде хранения.
Логическая структура БД получается преобразованием концептуальной схемы в логическую схему (модель), ориентированную на выбранную СУБД.
Применительно к наиболее распространенной реляционной модели данных общий подход преобразования концептуальной схемы в логическую состоит в том, что каждую сущность, являющуюся представителем множества однотипных объектов, задают схемой отдельного отношения (таблицы), а атрибуты сущности образуют столбцы таблицы. Первичный ключ сущности образует исходный первичный ключ таблицы, который в дальнейшем может быть изменен.
Проектирование логической структуры БД должно решать задачи выбора наиболее эффективной структуры данных, обеспечения быстрого доступа к данным. исключения дублирования данных, обеспечения целостности данных таким образом, чтобы при изменении одних объектов автоматически происходило соответствующее изменение связанных с ними объектов.
При неправильно спроектированной схеме БД могут возникнуть аномалии модификации данных. Они обусловлены отсутствием средств явного представления типов множественных связей между объектами ПО и неразвитостью средств описания ограничений целостности на уровне модели данных. Для решения подобных проблем проводится нормализация отношений, предложенная Э.Ф.Коддом в рамках реляционной модели данных.
Нормализация
Целью нормализации является исключение избыточности данных, которая является причиной ошибок при вводе и нерационального использования дискового пространства компьютера
Нормализация представляет собой
процесс последовательного
2.4.1 Первая нормальная форма
Таблица находится в 1 НФ, если она
удовлетворяет следующим
а) не содержит полей с несколькими значениями;
б) ключевое поле не имеет пустот.
Первым требованием
Вторым требованием через
Рассмотрим процесс приведения к 1 НФ на примере Рис1. представлен список таблиц проектируемой базы данных.
По определению логическая модель является отображением концептуальной модели, в частности диаграммы классов. В данном случае исходными данными будут являться три таблицы (Рис1.), выделенные при построении концептуальной модели. Проанализируем их в соответствии с требованиями.
Программы:
Название |
Автор |
Категория |
Лицензия |
Язык |
Размер |
Стоимость |
Версия |
Ссылка |
ОС |
Сайт автора |
Скриншоты:
Название |
Бинарный файл |
Администраторы:
Логин |
Пароль |
Тип |
В таблице "Программы" не все поля удовлетворяют требованиям 1НФ. В частности поле "ОС" содержит список операционных систем, а значит не является атомарным и его надо выделить в отдельную таблицу БД.
Название |
ОС |
Поля "Автор", "Категория", "Лицензия", "Язык", "Размер", "Стоимость", "Версия", "Сайт" являются атомарными.
Таким образом, мы получили таблицы без полей с несколькими значениями, таким образом первое требование 1 НФ выполнено. Чтобы обеспечить второе требование необходимо определить первичные ключи в каждой таблице.
Для таблицы "Программы" первичным ключом будет составной ключ из полей "Название", "Автор" которое будет определять другие не ключевые поля.
В результате все таблицы не имеют пустот, таким образом, мы завершили процесс приведения к 1НФ.
2.4.2 Вторая нормальная форма
Таблица находится во 2НФ, если она
удовлетворяет следующим
- таблица должна быть приведена к 1НФ;
- поля, которые зависят только от части первичного ключа должны быть выделены в состав отдельных таблиц;
- все таблицы должны быть связаны между собой.
Поскольку на данном этапе первичный ключ является составным необходимо, части таблицы, зависящие от полей этого первичного ключа выделить в состав отдельных таблиц, с условием взаимосвязей сущностей.
ИД_автора |
Автор |
Сайт |
ИД_программы |
ИД_автора |
Категория |
Лицензия |
Размер |
Стоимость |
Версия |
Ссылка |
При анализе предметной области мы выяснили, что авторы могут редактировать свои программы, и поэтому нам необходимо соединить таблицу "Авторы" с таблицей "Администраторы".
ИД_автора |
Автор |
Сайт |
Логин |
Пароль |
Тип |
Создадим новую сущность "Категории" и добавим в неё атрибуты: "ИД_категории" и "Название". При формулировке системного анализа одним из требований было построение иерархической структуры каталога программ, поэтому для этой цели нам нужно создать дополнительный атрибут "ИД_родителя", который будет хранить ссылку на родительский элемент каталога, и таким образом можно создавать иерархию любой вложенности.
ИД_категории |
Название |
ИД_родителя |
ИД_программы |
ИД_автора |
ИД_категории |
Лицензия |
Размер |
Стоимость |
Версия |
Ссылка |
В таблице "Программы" существует также избыточное поле "Лицензия", которое будет повторяться у некоторого количества записей, поэтому данное поле следует вынести в отдельную сущность.
ИД_лицензии |
Название |
ИД_программы |
ИД_автора |
ИД_категории |
ИД_лицензии |
Размер |
Стоимость |
Версия |
Ссылка |
В таблице "Скриншоты" нужно убрать атрибут "Название" и вместо него ввести ключевое поле "ID_картинки". Для связи таблиц "Программы" и "Скриншоты" по связи один-ко-многим следует создать дополнительный атрибут "ID_программы".
Информация о работе ПРОЕКТИРОВАНИЕ БАЗЫ ДАННЫХ КАТАЛОГА ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ