Переход к физической модели. Определение таблиц, полей и типов данных

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

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

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

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

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

То есть получаем следующие таблицы:

Таблица 3

Группы товаров

№ п/п Наименование поля Тип данных Примечание
КодГруппы Счетчик Первичный ключ
Тип_товара Числовой Внешний ключ, связано с первичным ключом таблицы Типы_товаров
Группа_товаров Текстовый  

Таблица 4

Курс валют

№ п/п Наименование поля Тип данных Примечание
КодКурс Счетчик Первичный ключ
Дата Дата/время  
Курс Числовой  

Таблица 5

Магазины

№ п/п Наименование поля Тип данных Примечание
КодМаг Счетчик Первичный ключ
Название Текстовый  
Адрес Текстовый  
ФИО_дир Текстовый  

Таблица 6

Размеры

№ п/п Наименование поля Тип данных Примечание
КодРазмера Счетчик Первичный ключ
Тип_товара Числовой Внешний ключ, связано с первичным ключом таблицы Типы_товаров
Размер Текстовый  

Таблица 7

Цвета

№ п/п Наименование поля Тип данных Примечание
КодЦвета Счетчик Первичный ключ
Цвет Текстовый  

Таблица 8

Типы товаров

№ п/п Наименование поля Тип данных Примечание
КодТипТовара Счетчик Первичный ключ
Тип_товара Текстовый  

Таблица 9

Производители

№ п/п Наименование поля Тип данных Примечание
КодПроизв Счетчик Первичный ключ
Производитель Текстовый  

Таблица 10

Товары

№ п/п Наименование поля Тип данных Примечание
КодТовара Счетчик Первичный ключ
Тип товара Числовой Внешний ключ, связано с первичным ключом таблицы Типы_товаров
Группа товара Числовой Внешний ключ, связано с первичным ключом таблицы Группы_товаров
Производитель Числовой Внешний ключ, связано с первичным ключом таблицы Производители
Описание Текстовый  

Таблица 11

Товары, Цвета, Размеры

№ п/п Наименование поля Тип данных Примечание
КодТовЦвРазм Счетчик Первичный ключ
Товар Числовой Внешний ключ, связано с первичным ключом таблицы Товары
Цвет Числовой Внешний ключ, связано с первичным ключом таблицы Цвета
Размер Числовой Внешний ключ, связано с первичным ключом таблицы Размеры

Таблица 12

Поставки

№ п/п Наименование поля Тип данных Примечание
КодПоставки Счетчик Первичный ключ
Дата_поставки Дата/время  
Магазин Числовой Внешний ключ, связано с первичным ключом таблицы Магазины
Курс Числовой Внешний ключ, связано с первичным ключом таблицы Курс_валют21
ТовЦветРазм Числовой Внешний ключ, связано с первичным ключом таблицы ТоварыЦветаРазмеры  
Кол-о Числовой  
Закупочная_цена Денежный Формат = 0,00¥
Корректировка_стоимости Денежный  

Таблица 13

Продажи

№ п/п Наименование поля Тип данных Примечание
КодПродажи Счетчик Первичный ключ
Дата_продажи Дата/время  
Магазин Числовой Внешний ключ, связано с первичным ключом таблицы Магазины
ТовЦветРазм Числовой Внешний ключ, связано с первичным ключом таблицы ТоварыЦветаРазмеры  
Кол-о Числовой  
Скидка Денежный  

1.4 Определение связей между таблицами

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

Все связи с обеспечением целостности данных для исключения случайного удаления данных со стороны «один» (см. рис. 14).

Переход к физической модели. Определение таблиц, полей и типов данных - student2.ru

Рис.14. Схема данных
2. Создание запросов

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

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

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

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

· Выбрать записи, удовлетворяющие условиям отбора;

· Произвести вычисления в каждой из полученных записей;

· Произвести обновление полей в выбранном подмножестве записей;

· Создать новую таблицу базы данных, используя данные из существующих таблиц;

· Удалить выбранное подмножество записей из таблицы базы данных.

Так же в Access может быть создано несколько видов запроса:

· Запрос на выборку - выбирает данные из взаимосвязанных таблиц и других запросов. Результатом является таблица, которая существует до закрытия запроса.

· Запрос на создание таблицы - также выбирает данные из взаимосвязанных таблиц и других запросов, но, в отличие от запроса на выборку, результат сохраняет в новой постоянной таблице;

· Запросы на обновление, добавление, удаление - являются запросами действия, в результате выполнения которых изменяются данные в таблицах.

На данном этапе работы были разработаны следующие запросы:

1) Поставки Запрос: в этом запросе рассчитывается стоимость товара с учетом текущего курса валют и корректировки стоимости.

В него входят таблицы Поставки и Курс валют. Вычисляемые поля:

ЗакупСтоим: [Кол-о]*[Закупочная цена]

РекомендЦена: [Закупочная_цена]*Курс_валют!Курс+[Корректировка стоимости]

РекомендСтоим: [РекомендЦена]*[Кол-о]

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

РекомендЦена: DLookUp("[РекомендЦена]";"[Поставки Запрос]";"[ТовЦветРазм] = " & [ТовЦвРазм] & " And [Магазин] = " & [Магазин] & " And [Дата поставки] <= #" & Format([Дата продажи];"dd\/mm\/yyyy") & "#")

ФактЦена: [РекомендЦена]-[Скидка]

ФактСтоим: [ФактЦена]*[Кол-о]

Для расчета рекомендуемой цены используется функция DLookUp(), позволяющая обратиться к полю РекомендЦена запроса Поставки Запрос с условием отбора, товар и магазин должны быть равны текущим значениям, Дата поставки должна быть меньше либо равной дате продажи.

3) Всего поступило - в этом запросе рассчитывается сколько всего поступило за все время каждого товара в каждый из магазинов (см. рис. 15).

Переход к физической модели. Определение таблиц, полей и типов данных - student2.ru

Рис.15. Форма запрос на выборку «Всего поступило»

В запрос входят таблицы Поставки, ТоварыЦветаРазмеры и Магазины, объединенные между собой. Причем заданы особые параметры объединения, которые выводят на экран все записи таблицы Поставки и только совпадающие записи таблицы ТоварыЦветаРазмеры; все записи таблицы Магазины и только совпадающие записи таблицы Поставки. Данные в запросе сгруппированы по магазину и товару, в поле Количество рассчитывается сумма для выделенных групп с помощью групповой функции Sum.

4) Всего продано: аналогичный запрос, подсчитывающий сколько всего продано каждого товара в каждом магазине (см. рис. 16):

Переход к физической модели. Определение таблиц, полей и типов данных - student2.ru

Рис.16. Форма запрос на выборку «Всего продано»

5) Текущие_остатки: подсчитывает текущий остаток каждого товара в каждом магазине (см. рис. 17).

Переход к физической модели. Определение таблиц, полей и типов данных - student2.ru

Рис.17. Форма запрос на выборку «Текущее остатки»

6) Включает в себя запросы Всего поступило и Всего продано, объединенные по полям Магазин и Товар с параметрами объединения: все записи запроса Всего поступило и только совпадающие записи запроса Всего продано, так как поступление товара «первичнее» продаж.

Содержит расчетное поле Остаток:

Остаток: [Всего поступило.Sum-Кол-о]-Nz([Всего продано.Sum-Кол-о];0)

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


Наши рекомендации