Анализ предметной области, определение сущностей и взаимосвязей между ними

ЯГТУ 220301.65-015 ЛР

 

 

Работу выполнила

студентка гр. МА-23

_______ А.А. Савинская

27.05.2009

 

 

Задание:

Использование базы данных является одним из приоритетных направлений развития прикладного программного обеспечения.

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

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

 

Разработка структуры базы данных

Уточнение задания

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

Требования к функциям базы данных:

1) база данных должна позволять просматривать информацию о программах любому пользователю;

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

Анализ предметной области, определение сущностей и взаимосвязей между ними

В соответствии с задачами, которые поставлены перед базой, выделим четыре сущности (они являются определяющими критериями в выборе программы):

1) «Программа» - в эту сущность включена информация о программах (название, фирма, тип, информация о поддержке)

2) «Версия» - в эту сущность включена информация о сходствах и различиях версий программы (назначение, дата выпуска, стоимость)

3) «Производитель» - в эту сущность включена информация о фирме, стране-производителе и контактная информация.

4) «Технические характеристики» - в эту сущность включена информация о типе системных требований, их значениях и языке программы.

 

Эти сущности взаимосвязаны следующим образом:

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

- один производитель может выпускать несколько программ, однако каждой программе соответствует один производитель. Следовательно, связь между сущностями "производитель" и "программа" «один ко многим»

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

 

Структура сущностей:

Программа Версия

Название Фирма Тип Инф. о поддержке
Название Версия Назначение Дата выпуска Стоимость

 

 

Производитель Технические хар-ки

Фирма Страна Инф. для связи
Название Версия Тип сист/треб Значение сист/треб Язык

 

Нормализация

Первая нормальная форма требует:

1) простая структура таблицы

2) в таблице нет одинаковых по смыслу полей (нет повторяющихся групп)

3) в таблице нет составных полей

4) в таблице нет одинаковых записей

 

Рассмотрим выполнение требований первой нормальной формы к каждой таблице.

1) В каждой таблице информация предоставляется в виде совокупности строк и столбцов.

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

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

4) Двух полностью одинаковых строк ни в одной таблице не должно быть, так как одинаковые элементы множества являются одним элементом, но части записей, такие как, например, в таблице "Программа": "Название", "Фирма" и "Тип" могут повторяться. В каждой из таблиц есть поля, которые уникальны и не повторяются. Например, "Название" в таблице "Программа" или "Фирма" в таблице "Производитель". У одной программы не может быть несколько производителей, также как у программы с одним названием не могут быть различные типы программ.

 

Как мы видим требования первой нормальной формы к каждой таблице выполняются, следовательно, они приведены к первой нормальной форме.

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

 

Определение первичных ключей:

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

 

Произведем анализ смысловых зависимостей.

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

 

 

Производитель Программа

Название
Фирма Тип Инф. о поддержке
Фирма
Страна Инф. для связи


 

Название Версия Тип сист/треб
Значение сист/треб Язык
Название Версия
Назначение Дата выпуска Стоимость

Технические хар-ки Версия

 

 

 

 


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

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