Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка ЛабAccess.doc
Скачиваний:
20
Добавлен:
20.03.2016
Размер:
391.17 Кб
Скачать

Разработка проекта базы

Созданию базы на компьютере предшествует предварительный этап упорядочивания сведений, которые будут храниться в компьютере. Он начинается с формулировки основных вопросов пользователей, на которые придется отвечать, используя информацию из базы, и проектирования структуры таблиц для хранения необходимых для ответа сведений. Для того чтобы база не была слишком громоздкой, в эти таблицы включают только данные, необходимые для ответа на поставленные вопросы. Основная цель проектирования – распределить всю информацию по нескольким таблицам так, чтобы свести к минимуму ее дублирование в разных записях. Технология проектирования таблиц называется нормализацией. Она описана в работе [4]. Рассмотрим эту технологию на примере учебного задания, для которого будет создаваться база в данных методических указаниях.

Задание. Разработать базу ЗАГОТОВКИ, в которой будут регистрироваться сведения о необходимом запасе нужных продуктов, поставщиках и договорах на доставку продуктов.

Предусмотреть в базе ответы на следующие вопросы:

  1. Каковы нормативы запаса того или иного продукта, к каким поставщикам можно обращаться для его заготовки?

  2. Какие поставки ожидаются в том или ином диапазоне дат?

  3. Какие договоры уже заключены на тот или иной продукт или с тем или иным поставщиком в интересующий пользователя период времени?

  4. По каким продуктам договоры, уже заключенные, не обеспечивают необходимый запас?

  5. Каковы средняя цена и разброс цен на тот или иной продукт?

  6. Каков объем поставок от того или иного поставщика?

  7. Какие поставки не оплачены на сегодняшний день?

Предусмотреть вывод на печать следующих отчетов:

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

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

    3. По неоплаченным договорам, сгруппировав данные по поставщикам.

Пример проектирования таблиц для учебного задания

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

– название продукта – поле Продукт;

– необходимый запас – поле Норма;

– допустимое отклонение запаса от нормы – поле Допуск;

– название фирмы-поставщика – поле Фирма;

– профиль поставок от данного поставщика – поле Профиль;

– количество продукта, поставляемое по договору, – поле Количество;

– цена, по которой поставляется данный продукт, – поле Цена;

– дата поставки – поле ДатаПоставки;

– дата оплаты договора – ДатаОплаты.

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

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

ЗАГОТОВКИ: Продукт, Норма, Допуск, Фирма, Профиль, Количество, Цена, ДатаПоставки, ДатаОплаты.

В каждой таблице выделяют одно или несколько полей, содержание которых однозначно определяет, о каком объекте идет речь в очередной записи (строке таблицы, содержащей сведения об одном объекте). Совокупность этих полей называют ключом таблицы. Если для однозначного определения записи достаточно одного поля, то это – простой ключ, если ключ состоит из нескольких полей, то это – составной ключ. Для таблицы ЗАГОТОВКИ нужен составной ключ. Поля, входящие в него, подчеркнуты.

Значения полей Норма и Допуск в любой записи предопределяются содержанием поля Продукт. Название фирмы-поставщика и остальные поля базы не влияют на значения, вводимые в эти поля. Аналогично значение поля Профиль определяется только содержанием поля Фирма. Чтобы не повторять эти сведения при регистрации каждого нового договора, распределяем все данные по трем таблицам:

ПРОДУКТЫ: Продукт, Норма, Допуск.

ПОСТАВЩИКИ: Фирма, Профиль.

ДОГОВОРЫ: Продукт, Фирма, Количество, Цена, ДатаПоставки, ДатаОплаты.

Третий этап. Поля Продукт и Фирма, которые входят в разные таблицы, могут содержать длинные тексты. Вводим для их значений коды, чтобы не повторять эти тексты в каждой таблице. Кроме этого добавляем в таблицу ДОГОВОРЫ поле с номером договора, чтобы отказаться от составного ключа в ней. Это необязательные, но желательные дополнения. В базах с большим количеством записей они существенно уменьшают объем необходимой памяти и ускоряют время обработки информации. Поля с кодами обозначим короткими аббревиатурами: КП, КФ и КД. Получаем:

ПРОДУКТЫ: КП, Продукт, Допуск.

ПОСТАВЩИКИ: КФ, Фирма, Профиль.

ДОГОВОРЫ: КД, КП, КФ, Количество, Цена, ДатаПоставки, ДатаОплаты.

Четвертый этап. Представляем полученные проекты таблиц в стандартном виде (ключевые поля подчеркнуты).

ПРОДУКТЫ:

КП (код продукта – ключевое, целое число);

Продукт (название продукта – текст);

Норма (норма запаса продукта – число);

Допуск (допустимое отклонение запаса от нормы – число);

ПОСТАВЩИКИ:

КФ (код фирмы-поставщика – ключевое, целое число).

Фирма (название фирмы – текст);

Профиль (категории продуктов, которые может поставлять фирма – длинный текст).

ДОГОВОРЫ:

КД (номер договора – ключевое, целое число);

КП (код продукта – заменяет название продукта, значения кодов берутся из таблицы ПРОДУКТЫ, целое число);

КФ (код фирмы – заменяет название фирмы, значения кодов берутся из таблицы ПОСТАВЩИКИ, целое число);

Количество (количество продукта, поставляемое по договору – вещественное число с 1 знаком после запятой);

Цена (цена товара по договору – в рублях, с 1 знаком после запятой);

ДатаПоставки (короткий формат даты типа 01.01.01)

ДатаОплаты (короткий формат даты типа 01.01.01)