Смекни!
smekni.com

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

1.2 Физическая модель

Главными вопросами физического проектирования являются оптимизация времени выполнения основных запросов к базе данных и обеспечение безопасности данных.

Для повышения производительности реляционные СУБД используют специальные объекты, называемые индексами. При описании структуры таблицы задаются индексы с помощью свойства полей, называемого индексированным полем. Индексированное поле может принимать три значения:

1. неиндексированное;

2. допускаются совпадения;

3. совпадения не допускаются.

Индекс содержит набор записей из двух элементов: {значение ключевого поля; указатель на соответствующую запись в таблице}. Индекс упорядочен по значению ключевого поля, что позволяет системе быстро находить нужные значения. В реляционных СУБД таблицы всегда индексируются по полю/полям первичного ключа. В Access индексированные поля не обязательно ключевые. Считается нормой, если таблица имеет хотя бы одно ключевое поле.

Обычно индексы используют в базах данных, больших по объему, поэтому индексы можно не использовать. Создадим индексированные поля только по полю первичного ключа (таблица 1.2).

Таблица 1.2 Индексированные поля

Таблица Индексированное поле
Данные на клиентов Код клиента
Контракты Код контракта
Список услуг Код услуги
Данные на менеджеров Код менеджера

2. Реализация в MSACCESS

2.1. Создание таблиц и схем данных

Создадим структуру всех таблиц в режиме Конструктора таблиц. На рис. 2.1 представлено окно конструктора с описанием таблицы Данные на клиентов. После создания полей таблицы в соответствии можно просмотреть созданные системой индексы (рис. 2. 2). Т.к. наша база не большая, то не будем создавать индексы для всех полей.

Рис. 2.1 Окно конструктора

Рис. 2.2 Окно индексы


Аналогично создадим остальные таблицы.

Рис. 2.3 Данные таблицы «Данные на клиентов»

Рис. 2.4 Данные таблицы «Контракты»

Рис. 2.5 Данные таблицы «Список услуг »

Рис. 2.6 Данные таблицы «Данные на менеджеров»


2.2 Создание связей между таблицами

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

Рис 2.7 Схема данных

На рис 2.8 отображено окно изменения связей:

Рис 2.8 Изменение связей

2.3 Разработка запросов к базе данных

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

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

Создадим запросы, заданные в проекте:

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

Для создания запроса с помощью Конструкторав окне базы данных выберем команду Создание запроса в режиме конструктора. Выберем таблицу «Данные на клиентов». Для построения запроса выберем поля Город и Фамилия клиента. Для поля Город применим сортировку по возрастанию. Запрос в режиме конструктора показан на рисунке 2.9.

Рис 2.9 Режим конструктора


Результат выполнения запроса:

Рис 2.10 Список клиентов, сгруппированных по городам

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

Для создания запроса с помощью режима Конструкторав окне базы данных выберем команду Создание запроса в режиме конструктора. Выберем таблицу «Список услуг». Для построения запроса выберем поля Город и Фамилия клиента. Для поля Город применим сортировку по возрастанию.

Рис. 2.11 Режим конструктора


Рис. 2.12Результат выполнения запроса

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

Создадим запрос с помощью Конструктора. Для построения запроса выберем поля Вид услуги из таблицы «Список услуг», Код контракта, Фамилия клиента, Название компании, Сумма контракта, Дата подписания. Для поля Вид услуги применим сортировку по возрастанию. Для поля Дата подписания введем условие отбора «**.**.2007», так как необходимо выбрать контракты, подписанные за прошлый год.

Режим конструктора:


Результат выполнения запроса:

4. Три самых важных клиента

Режим конструктора:

SQL-реализация запроса:


Результат выполнения запроса:

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

Режим конструктора:

SQL-реализация запроса:

Режим конструктора:


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

Режим конструктора:

SQL-реализация запроса:

Результат выполнения запроса:

7. Запрос на создание архивной таблицы.

Режим конструктора:

Cначала создадим запрос на выборку:


Для перестройки запроса на создание таблицы перейдем к команде Запрос-Создание таблицы. В окне диалога наберем имя новой таблицы – «Архивная таблица». После запуска запроса на экране появится окно диалога с сообщением о количестве записей, которые будут вставлены в таблицу. Для подтверждения создания таблицы нажимаем кнопку ДА. На вкладке Таблицы окна базы данных появится новая таблица с именем «Архивная таблица».

SQL-реализация запроса:

Результат выполнения запроса:

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

Для избегания ошибок создадим копию основной таблицы «Контракты» - «Контракты копия».


Режим конструктора:

SQL-реализация запроса:

Результат выполнения запроса:

2.4 Стандартные формы и отчеты

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

Формы являются важнейшим средством создания интерфейса пользователя при работе с базами данных Access.

Можно создавать формы со многими целями:

1. Ввод и редактирование данных.

2. Управление ходом выполнения программы.

3. Вывод сообщений о ходе работы