Анализ предметной области, определение сущностей и взаимосвязей между ними
ЯГТУ 220301.65-015 ЛР
Работу выполнила
студентка гр. МА-23
_______ А.А. Савинская
27.05.2009
Задание:
Использование базы данных является одним из приоритетных направлений развития прикладного программного обеспечения.
В ходе лабораторных работ мы должны научиться разрабатывать структуру базы данных, проектировать таблицы, изучить добавление, удаление, изменение и выборку данных в таблицах, а также создание клиентской части.
Все это мы будем рассматривать на примере базы данных «Программы». База данных должна содержать информацию о программах (название, версия, назначение, тип (текстовый редактор, СУБД и т.п.), системные требования, язык, дата выпуска, стоимость и др.) и производителях (название, страна, информация о поддержке тех или иных продуктов, информацию для связи и др.)
Разработка структуры базы данных
Уточнение задания
База данных создается для того, чтобы пользователь ПК при необходимости мог получить информацию о той или иной программе. Данная база разработана с целью упрощения поиска информации по определенным критериям, структурирования данных о программах. База данных "Программы" используется пользователем, сокращая время поиска необходимой ему информации. Предполагается, что клиент будет получать информацию через компьютеры или терминалы в специализированных магазинах, где, выбирая необходимый товар, он обращается к менеджеру для приобретения. Также нельзя исключать возможность заказа программы через интернет-магазины. При вызове программы перед клиентом появится информация обо всех программах, имеющихся в наличии. Также необходимо, чтобы по желанию клиента на экран выводилась информация о системных требованиях. Необходимо учесть и возможность выбора программ по определенным критериям, таким как название, дата выпуска, стоимость и др.
Требования к функциям базы данных:
1) база данных должна позволять просматривать информацию о программах любому пользователю;
2) база данных должна позволять регистрировать информацию о новых программах, поступивших в продажу только сотрудникам магазинов, а также удалять информацию о программах, которых нет в наличии.
Анализ предметной области, определение сущностей и взаимосвязей между ними
В соответствии с задачами, которые поставлены перед базой, выделим четыре сущности (они являются определяющими критериями в выборе программы):
1) «Программа» - в эту сущность включена информация о программах (название, фирма, тип, информация о поддержке)
2) «Версия» - в эту сущность включена информация о сходствах и различиях версий программы (назначение, дата выпуска, стоимость)
3) «Производитель» - в эту сущность включена информация о фирме, стране-производителе и контактная информация.
4) «Технические характеристики» - в эту сущность включена информация о типе системных требований, их значениях и языке программы.
Эти сущности взаимосвязаны следующим образом:
- у одной программы может быть несколько версий, однако каждой версии соответствует одна программа. Следовательно, связь между сущностями "программа" и "версия" «один ко многим»
- один производитель может выпускать несколько программ, однако каждой программе соответствует один производитель. Следовательно, связь между сущностями "производитель" и "программа" «один ко многим»
-один набор технических характеристик может соответствовать нескольким версиям программ, однако у каждой версии существует свой набор технических характеристик. Следовательно, связь между сущностями "технические характеристики" и "версия" «один ко многим»
Структура сущностей:
Программа Версия
Название Фирма Тип Инф. о поддержке |
Название Версия Назначение Дата выпуска Стоимость |
Производитель Технические хар-ки
Фирма Страна Инф. для связи |
Название Версия Тип сист/треб Значение сист/треб Язык |
Нормализация
Первая нормальная форма требует:
1) простая структура таблицы
2) в таблице нет одинаковых по смыслу полей (нет повторяющихся групп)
3) в таблице нет составных полей
4) в таблице нет одинаковых записей
Рассмотрим выполнение требований первой нормальной формы к каждой таблице.
1) В каждой таблице информация предоставляется в виде совокупности строк и столбцов.
2) Как мы видим, в каждой отдельно взятой таблице отсутствуют составные поля, так как в работе с ними, нам не понадобятся отдельные части их значений.
3) Также в каждой таблице отсутствуют одинаковые по смыслу поля. При рассмотрении каждой таблицы в отдельности мы видим, что информация, содержащаяся в каждом из столбцов, различна.
4) Двух полностью одинаковых строк ни в одной таблице не должно быть, так как одинаковые элементы множества являются одним элементом, но части записей, такие как, например, в таблице "Программа": "Название", "Фирма" и "Тип" могут повторяться. В каждой из таблиц есть поля, которые уникальны и не повторяются. Например, "Название" в таблице "Программа" или "Фирма" в таблице "Производитель". У одной программы не может быть несколько производителей, также как у программы с одним названием не могут быть различные типы программ.
Как мы видим требования первой нормальной формы к каждой таблице выполняются, следовательно, они приведены к первой нормальной форме.
Вторая нормальная форма требует, чтобы таблицы были приведены к первой нормальной форме и чтобы все поля каждой таблицы зависели от первичного ключа. Первичный ключ должен однозначно определять запись и не быть избыточным. Также, мы должны убедиться в том, чтобы внутри каждой из сущностей не было внутренних взаимосвязей между характерными группами с целью уменьшения избыточности.
Определение первичных ключей:
В таблице "Программа" в качестве ключевого поля можно выбрать поле "название". В таблице "Версия" ключевым полем является совокупность полей "название" и "версия", так как они однозначно определяют запись. В таблице "Производитель" в качестве ключевого поля можно выбрать поле "фирма". В таблице "Технические характеристики" ключевое поле является составным – состоит из полей "название", "версия" и "тип сист/треб".
Произведем анализ смысловых зависимостей.
В таблице "Программа" поле "название" определяет атрибуты программы, такие как "фирма", "тип" и "информация о поддержке", так как программе с таким названием могут соответствовать только такие параметры. В таблице "Версия" совокупность полей "название" и "версия" однозначно определяют "назначение", "дату выпуска" и "стоимость". В таблице "Производитель" поле "фирма" определяет "страну", и "информацию для связи". В таблице "Технические характеристики" только совокупность полей "название", "версия" и "тип сист/треб" однозначно определяют "значения сист/треб" и "язык".
Производитель Программа
Название |
Фирма Тип Инф. о поддержке |
Фирма |
Страна Инф. для связи |
Название Версия Тип сист/треб |
Значение сист/треб Язык |
Название Версия |
Назначение Дата выпуска Стоимость |
Технические хар-ки Версия
Третья нормальная форма требует, чтобы таблицы были приведены ко второй нормальной форме, и чтобы между не ключевыми полями таблицы не было транзитивных зависимостей, то есть, чтобы значение любого поля, не входящего в состав первичного ключа не зависело от другого поля, не входящего в первичный ключ.
В нашем случае, таблицы удовлетворяют выше перечисленным требованиям, и это означает, что все таблицы соответствуют третьей нормальной форме.