Смекни!
smekni.com

Проектирование базы данных агентства по оказанию маркетинговых услуг (стр. 1 из 3)

Задание на курсовую работу

Проект №6. Консалтинговое агентство.

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

Контракт подписывается каждым клиентом по каждой услуге. Он включает: фамилию клиента, название компании клиента, вид услуги, дату подписания, дату начала работ, дату завершения работ, дату оплаты и сумму контракта. Список услуг включает: код услуги, вид услуги. Данные на клиентов включают: имя клиента, фамилию клиента, название компании клиента, город, адрес, номер телефона. В консалтинговом агентстве назначается менеджер проекта по каждому контракту. Данные на менеджеров проекта содержат: Фамилию и имя работника, номер телефона.

Запросы и отчеты должны быть составлены, чтобы предоставлять пользователю базы данных следующую информацию:

- Список клиентов, сгруппированный по городам;

- Отчет по контрактам;

- Список контрактов по отдельной услуге;

- Список контрактов, сгруппированный по виду услуги за прошедший год;

- Три самых важных клиента (принесших наибольшую прибыль);

- Список работников, отсортированный в обратном порядке в зависимости от величины суммы контрактов;

- Ежемесячная сумма контрактов на услуги каждого вида;

- Годовой отчет по сумме, полученной за оказанные услуги;

- Запрос на создание архивной таблицы и запрос на исключение данных из основной таблицы контрактов, выполненных 3 года назад и более.


Введение

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

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

Существует несколько видов СУБД. Наиболее известными и популярными СУБД являются Access, FoxPro и Paradox. Данная работа выполнена в Access.

Один из основных типов моделей данных – реляционная база данных.

Термин «реляционный» (от латинского relation – отношение) указывает, прежде всего, на то, что такая модель хранения данных построена на взаимоотношении составляющих ее частей.

В настоящее время реляционный подход к построению баз данных является наиболее распространенным. Достоинства такого подхода:

· наличие небольшого набора абстракций, которые позволяют сравнительно просто моделировать большую часть предметной области и допускают сравнительно простое и точное формализованное определение;

· наличие простого и в то же время мощного математического аппарата, опирающегося на теорию множеств;

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


1. Проект БД

1.1 Инфологическая модель (ER-диаграмма)

В данной работе модель будет строиться на основе метода «Сущность – связь». Этот метод основан на ER-диаграммах. Для ясности дадим некоторые основные определения.

· Сущность – это некоторое множество объектов материального и нематериального мира, информация которых хранится в базе данных.

· Ключ сущности – некоторое множество атрибутов, служащее для определения экземпляров сущности.

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

1.1.1 Описание предметной области

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

Контракт подписывается каждым клиентом по каждой услуге. Он включает: фамилию клиента, название компании клиента, вид услуги, дату подписания, дату начала работ, дату завершения работ, дату оплаты, сумму контракта. Список услуг включает: код услуги, вид услуги. Данные на клиентов включают: имя клиента, фамилию клиента, название компании клиента, город, адрес, номер телефона. В консалтинговом агентстве назначается менеджер проекта по каждому контракту. Данные на менеджеров проекта содержат: фамилию и имя работника, номер телефона.

Запросы и отчеты должны быть составлены, чтобы предоставлять пользователю базы данных следующую информацию:

· список клиентов, сгруппированный по городам;

· отчет по контрактам;

· список контрактов по отдельной услуге;

· список контрактов, сгруппированный по виду услуги за прошедший год;

· три самых важных клиента (принесших наибольшую прибыль);

· список работников, отсортированный в обратном порядке в зависимости

от величины суммы контрактов;

· ежемесячная сумма контрактов на услуги каждого вида;

· годовой отчет по сумме, полученной за оказанные услуги;

· запрос на создание архивной таблицы и запрос на исключение данных из основной таблицы контрактов, выполненных 3 года назад и более.

1.1.2 Перечислим сущности:

· «Данные на клиентов»,

· «Контракты»,

· «Список услуг»,

· «Данные на менеджеров».

Определим атрибуты сущности – это поименованная характеристика сущности.

Таблица 1.1.1Атрибуты сущности Данные на клиентов

Код клиента Числовой
Имя клиента Текстовый
Фамилия клиента Текстовый
Компания Текстовый
Город Текстовый
Адрес Текстовый
Телефон Числовой

Таблица 1.1.2Атрибуты сущности Контракты

Код контракта Числовой
Фамилия клиента Текстовый
Компания клиента Текстовый
Вид услуги Текстовый
Дата подписания Дата
Дата начала работ Дата
Дата завершения работ Дата
Дата оплаты Дата
Сумма контракта Числовой

Таблица 1.1.3Атрибуты сущности Список услуг

Код услуги Числовой
Вид услуги Текстовый

Таблица 1.1.4Атрибуты сущности Данные на менеджеров

Код менеджера Числовой
Фамилия Текстовый
Имя Текстовый
Телефон Числовой

1.1.3 Покажем связи между сущностями. Дадим определение:

· Связь между сущностями – это ассоциация между двумя и более сущностями.

· Класс принадлежности экземпляров сущности: говорят, что сущность обладает обязательным классом принадлежности, если все экземпляры первой сущности (или второй) связаны хотя бы с одним экземпляром второй (или первой) сущности.

Класс принадлежности может быть обязательным или необязательным.

0 (необязательный) – если каждый экземпляр сущности не связан ни с одним экземпляром другой сущности;

1 (обязательный) – если каждый экземпляр сущности связан хотя бы с одним экземпляром другой сущности.

В нашем случае сущности «Контракты» и «Данные на клиентов» имеют вид связи «один-к-одному» с классом принадлежности 1, т.е. контракт подписывается каждым клиентом по каждой услуге. Сущности «Контракты» и «Список услуг» имеют вид связи «один-ко-многим» с классом принадлежности 0, т.е. одна услуга может фигурировать в нескольких контрактах, но есть услуги, по которым не был подписан контракт. Сущности «Контракты» и «Данные на менеджеров» также имеют вид связи «один-ко-многим» с классом принадлежности 0, т.е. один менеджер может вести несколько контрактов или ни одного.

1.1.4 Преобразуем сущность в отношение или набор отношений, между которыми установим связи. Отношение представляет собой таблицу. Таблица имеет столбцы (поля) и строки (записи).

Преобразования сущностей в совокупность отношений:

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

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

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

4. Зададим первичный ключ для каждой сущности, выступающей во взаимоотношениях как «многие-к-одному».

Выполним выше перечисленные действия для данного проекта.

1. Создадим четыре таблицы с полями, соответствующими атрибутам сущностей.

2. Создадим еще две таблицы для сущностей с классом принадлежности 0 («Контракты» - «Список услуг» и «Контракты» - «Данные на менеджеров»).

3. Зададим первичные ключи для таблиц «Данные на клиентов» и «Контракты», выступающих в связи «один-к-одному», и для таблиц «Список услуг» и «Данные на менеджеров», выступающих в связи «один-ко-многим» с таблицей «Контракты».

· Первичный ключ – это поле или минимальный набор полей,

однозначно определяющий каждую строку таблицы.

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

Таблица «Данные на клиентов» имеет в своем составе уникальное для каждой строки поле – Код клиента. В таблице «Контракты» в качестве первичного ключа также выступает поле Код контракта. В таблице «Список услуг» первичным ключом будет поле Код услуги, а в таблице «Данные на менеджеров» - Код менеджера.

Сущности «Контракты», «Список услуг», «Данные на менеджеров» имеют связь «один-ко-многим», поэтому в качестве внешних ключей, связывающих таблицы, будут выступать первичные ключи каждой таблицы сущности. Поле подчиненной таблицы, по которому осуществляется связь, называется внешним ключом главной таблицы.