Смекни!
smekni.com

Автоматизация и учет поставок товаров (стр. 2 из 6)

Семантическая модель предметной области «Поставка товаров в магазин косметики» представлена в приложении А.

2.2 Логическая модель данных

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

Родительской является сущность, которая передает копию своего первичного ключа в отношение, представляющее дочернюю сущность для использования в качестве внешнего ключа.

Между сущностями «Вид товара» и «Товар» существует связь (1:*). Так как степень участия в данной связи обязательная с обеих сторон, то в результате будут получены два отношения. В данном случае сущность «Вид товара» будет являться главной, так как находится на стороне связи «один», а сущность «Товар» - подчиненной, так как находится со стороны связи «многие». Значит главная сущность «Вид товара» передает копию своего первичного ключа, которым является атрибут «Код вида», в подчиненную сущность «Товар». Атрибут «Код вида» будет являться внешним ключом сущности «Товар».

Далее между сущностями «Страна изготовитель» и «Товар» установлена связь (1:*). Здесь степень участия также обязательная с обеих сторон. Сущность «Страна изготовитель» находится со стороны связи «один» и является главной, а сущность «Товар» находится со стороны связи «многие» и является подчиненной. Следовательно, сущность «Страна изготовитель» передает копию своего первичного ключа в сущность «Товар», где атрибут «Код страны» будет внешним ключом.

Сущности «Поставка» и «Поставщик» имеют связь (1:*), обязательную со стороны обеих сущностей. Так как сущность «Поставщик» находится со стороны связи «один», то она будет являться главной. Сущность «Поставка» находится со стороны связи «многие», следовательно, она является подчиненной. Таким образом, сущность «Поставщик» предает копию своего первичного ключа, роль которого выполняет атрибут «Код поставщика», в сущность «Поставка» в качестве внешнего ключа.

Между сущностями «Товар» и «Поставка» существует связь (1:*). В данном случае связь также обязательная с обеих сторон. Здесь сущность «Товар» будет главной, так как находится со стороны связи «один», и передает копию своего первичного ключа в сущность «Поставка». Тогда сущность «Поставка» будет подчиненной и атрибут «Код товара» станет внешним ключом.

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

Выполним проверку полученных отношений на соответствие нормальным формам.

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

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

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

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

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

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

Отношение находится в нормальной форме Бойса-Кодда, если оно находится в третьей нормальной форме, и каждый детерминант отношения является возможным ключом отношения, то есть отношение не должно содержать зависимостей ключевых атрибутов от неключевых.

Все отношения не имеют альтернативных ключей, поэтому не нужна проверка на нормальную форму Бойса-Кодда.

Отношение находится в четвертой нормальной форме, если оно находится в третьей нормальной форме, и в нем отсутствуют многозначные зависимости неключевых атрибутов от ключевых.

База данных содержит отношения, не имеющие многозначные зависимости.

Таким образом, отношение соответствует всем четырем нормальным формам.

2.3 Определение физических характеристик атрибутов

Физические характеристики атрибутов представлены в таблице 1.

Таблица 1 – Физические характеристики атрибутов

Имя атрибута Тип Размер Обязатель-ность заполнения
Таблица ВИД ТОВАРА
КодВида Числовой Длинное целое Да
Название вида Текстовый 25 символов Да
Таблица СТРАНА ИЗГОТОВИТЕЛЬ
КодСтраны Числовой Длинное целое Да
НазваниеСтраны Текстовый 20 символов Да
Таблица ПОСТАВЩИК
КодПоставщика Числовой Длинное целое Да
Поставщик Текстовый 25 символов Да
Адрес Текстовый 25 символов Да
Телефон Числовой Длинное целое Да
Таблица ПОСТАВКА
КодПоставки Числовой Длинное целое Да
КодВида Числовой Длинное целое Да
КодПоставщика Числовой Длинное целое Да
ДатаПоставки Дата/время Краткий формат даты Да
СтоимостьПоставки Денежный Да
КоличествоПоставленныхЕдиниц Числовой Длинное целое Да
Таблица ТОВАР
КодТовара Числовой Длинное целое Да
КодВида Числовой Длинное целое Да
КодСтраны Числовой Длинное целое Да
НазваниеТовара Текстовый 20 символов Да
СтоимостьЕдиницыПро-дукции Денежный Да

3 Реализация системы

3.1 Создание, связывание и заполнение таблиц

Создадим базу данных для ввода, хранения данных о поставках товаров, поставщиках, которые поставляют эти товары, видах товаров и странах изготовителях.

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

1) с помощью мастера таблиц;

2) в режиме таблицы (путем ввода данных);

3) в режиме конструктора.

Создадим таблицы базы данных в режиме конструктора. Создадим новую таблицу и сохраним ее в базе данных под именем «Вид товара».

Для создания таблицы в режиме конструктора нажмем кнопку «Таблицы» на панели «Объекты окна базы данных», а затем кнопку «Создание таблицы в режиме конструктора». Появится окно конструктора.

Окно конструктора таблицы заполним атрибутами таблицы «Вид товара».

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

После того как указано имя поля и выбран тип данных, можно выполнить дополнительную настройку свойств каждого поля. Это делается в нижней части окна, которая называется «Свойства поля». Некоторые свойства полей имеют фиксированный набор значений. При попадании в соответствующую ячейку в ней автоматически появляется кнопка со стрелкой, при нажатии на которую можно выбрать нужное значение свойства из выпадающего списка аналогично тому, как это делалось при выборе типа данных. Набор свойств полей, который можно увидеть на вкладке «Общие», отличается для полей различных типов.

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

Теперь нужно установить первичный ключ. Для этого выделяем поле (щелчок мыши по строке поля), которое будет ключевым, в данном случае это поле «Код вида», нажмемпункт меню «Правка/Ключевое поле» или кнопку

на панели инструментов.

Пример структуры таблицы в режиме конструктора приведен на рисунке 1.

Рисунок 1 – Структура таблицы «Вид товара» в режиме конструктора

Завершим работу с таблицей, предварительно сохранив ее под именем «Вид товара».

Аналогично строятся и остальные таблицы: «Страна изготовитель», «Поставщик», «Поставка» и «Товар». Их структура в режиме конструктора представлена на рисунках 2,3,4 и 5.

Рисунок 2 – Структура таблицы «Страна изготовитель» в режиме конструктора

Рисунок 3 – Структура таблицы «Поставщик» в режиме конструктора

Рисунок 4 – Структура таблицы «Поставка» в режиме конструктора

Рисунок 5 – Структура таблицы «Товар» в режиме конструктора

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