ЛАБОРАТОРНАЯ РАБОТА №1 Тема: Построение информационно-логической модели для реляционной базы данных

Цель: Освоить технологию создания информационно-логической модели для реляционной базы данных методом нормальных форм.

Условие задания:

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

Документ 1. Бланк заказа

ЗАКАЗ №_______

Дата оформления __________

Дата назначения __________

Дата исполнения __________

Клиент:

код _________ наименование __________________________________________________

адрес ______________________________________________________________________

П/п

Товар Цена,

грн.

Кол-во Стоимость,

грн.

Код Марка Ед. изм.
  Сумма заказа, грн.

Документ 2. Товары на складе

П/п

Код

товара

Марка

товара

Ед. изм.

товара

Цена,

грн.

Количество Поставки

прекращены

 

Описание и ограничения предметной области:

– предприятие реализует канцелярские товары через систему заказов;

– факт заказа товаров подтверждается оформленным бланком заказа;

– каждый заказ имеет уникальный номер по предприятию;

– каждый заказ соответствует только одному клиенту;

– один и тот же клиент может оформлять много заказов на поставку товаров;

– в одном заказе может быть заказано много товаров;

– один и тот же товар может быть заказан в разных заказах;

– каждый товар идентифицируется уникальным кодом (артикулом);

– каждый товар может иметь только одну единицу измерения;

– цена товара может изменяться на основании переоценки;

– стоимость выполненных заказов изменяться не может;

– оформленные заказы должны храниться в течение нескольких лет.

– заказы могут быть исполненными или находиться в стадии исполнения (при исполнении заказа в Бланке заказа заполняется реквизит Дата исполнения).

Порядок создания модели:

Как известно из теории, для построения базы данных необходимо и достаточно, чтобы информационные объекты (отношения), входящие в модель, соответствовали требованиям третьей нормальной формы (3НФ).

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

1. Определение функциональных зависимостей между реквизитами

1.1. Определение функциональных зависимостей между реквизитами в соответствии с требованиями первой нормальной формы (1НФ)

В рамках решаемой задачи все реквизиты документов Бланк заказа и Товары на складе содержат простые (атомарные) данные, следовательно, первое условие 1НФ выполняется. Данные реквизитов Стоимость и Сумма заказа документа Бланк заказа являются вычисляемыми, следовательно, в схему отношения эти реквизиты не включаются.

Вторым условием нахождения отношения в 1НФ является наличие ключа – набора реквизитов однозначно идентифицирующего каждую запись в отношении.

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

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

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

Таблица 1.1

Документ Наименование

реквизита

Имя

реквизита

Функциональные

зависимости в 1НФ

Бланк заказа Заказ №

Дата оформления

Дата назначения

Дата исполнения

Код клиента

Наименование клиента

Адрес клиента

Код товара

Марка товара

Ед. изм. товара

Цена

Количество

КодЗаказа

ДатаОформления

ДатаНазначения

ДатаИсполнения

КодКлиента

НаимКлиента

АдресКлиента

КодТовара

МаркаТовара

ЕдИзмТовара

ЦенаПродажи

Количество

Товары на складе Код товара

Марка товара

Ед. изм. товара

Цена

Количество

Поставки прекращены

КодТовара

МаркаТовара

ЕдИзмТовара

ЦенаТовара

КоличествоТовара

ПоставкиПрекращены

1.2. Определение функциональных зависимостей между реквизитами в соответствии с требованиями второй нормальной формы (2НФ)

Ключ отношения документа Товары на складе является простым, следовательно, отношение автоматически соответствует требованиям 2НФ.

Ключ отношения документа Бланк заказа является составным, следовательно, требуется проверка на соответствие отношения требованиям 2НФ.

Описательный реквизит ДатаОформления функционально зависит только от реквизита КодЗаказа, следовательно, данный реквизит исключаем из исходного отношения и создаем новое отношение, в которое включаем реквизит ДатаОформления. Т. к. новое отношение должно соответствовать требованиям 1НФ, то включаем в него ключ – реквизит КодЗаказа.

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

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

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

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

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

Описательный реквизит МаркаТовара функционально зависит только от реквизита КодТовара, следовательно, исключаем данный реквизит из исходного отношения и создаем новое отношение, в которое включаем реквизит МаркаТовара. Т. к. новое отношение должно соответствовать требованиям 1НФ, то включаем в него ключ – реквизит КодТовара.

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

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

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

Результат определения функциональных зависимостей между реквизитами документа Бланк заказа в соответствии с требованиями 2НФ представлен в таблице 1.2.

Таблица 1.2

Имя

реквизита

Функциональные

зависимости в 1НФ

Функциональные

зависимости в 2НФ

КодЗаказа

ДатаОформления

ДатаНазначения

ДатаИсполнения

КодКлиента

НаимКлиента

АдресКлиента

КодТовара

МаркаТовара

ЕдИзмТовара

ЦенаПродажи

Количество

132

1.3. Определение функциональных зависимостей между реквизитами в соответствии с требованиями третьей нормальной формы (3НФ)

Все описательные реквизиты документа Товары на складе зависят от ключа КодТовара нетранзитивно (т. е. нет функциональной зависимости между описательными реквизитами), следовательно, отношение соответствует требованиям 3НФ.

Между описательными реквизитами отношения 3 (см. табл. 1.2) отсутствуют функциональные зависимости, следовательно, отношение 3 соответствует требованиям 3НФ.

Между описательными реквизитами отношения 2 отсутствуют функциональные зависимости, следовательно, отношение 2 соответствует требованиям 3НФ.

Между некоторыми описательными реквизитами отношения 1 присутствуют функциональные зависимости, поэтому отношение 1 не соответствует требованиям 3НФ.

Описательные реквизиты ДатаОформления, ДатаНазначения, ДатаИсполнения и КодКлиента зависят от ключа нетранзитивно, следовательно, оставляем их в отношении 1.

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

Описательный реквизит АдресКлиента зависит от ключа транзитивно через реквизит КодКлиента, следовательно, исключаем данный реквизит из исходного отношения и включаем его в отношение с ключом – КодКлиента.

Результат приведения функциональных зависимостей к требованиям 3НФ представлен в таблице 1.3.

Таблица 1.3

Имя

реквизита

Функциональные

зависимости в 1НФ

Функциональные

зависимости в 2НФ

КодЗаказа

ДатаОформления

ДатаНазначения

ДатаИсполнения

КодКлиента

НаимКлиента

АдресКлиента

КодТовара

МаркаТовара

ЕдИзмТовара

ЦенаПродажи

Количество

Отобразим функциональные зависимости между реквизитами документов Бланк заказа и Товары на складе в виде итоговой таблицы 1.4.

Таблица 1.4

Документ Наименование

реквизита

Имя

реквизита

Функциональные

зависимости в 3НФ

Бланк заказа Заказ №

Дата оформления

Дата назначения

Дата исполнения

Код клиента

Наименование клиента

Адрес клиента

Код товара

Марка товара

Ед. изм. товара

Цена

Количество

КодЗаказа

ДатаОформления

ДатаНазначения

ДатаИсполнения

КодКлиента

НаимКлиента

АдресКлиента

КодТовара

МаркаТовара

ЕдИзмТовара

ЦенаПродажи

Количество

Товары на складе Код товара

Марка товара

Ед. изм. товара

Цена

Количество

Поставки прекращены

КодТовара

МаркаТовара

ЕдИзмТовара

ЦенаТовара

КоличествоТовара

ПоставкиПрекращены

2. Разделение реквизитов на описательные и ключевые

Установим для каждого описательного реквизита (реквизита к которому обращена стрелка в табл. 1.4) ключевые реквизиты.

Результаты отобразим в таблице соответствия описательных и ключевых реквизитов (табл. 1.5). В данную таблицу не включаются повторы соответствия описательных и ключевых реквизитов.

3. Образование информационных объектов

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

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

Таблица 1.5

п/п

Описательный

реквизит

Ключевой

реквизит

Вид

ключа*

1

2

3

4

5

6

7

7

8

9

10

11

12

ДатаОформления

ДатаНазначения

ДатаИсполнения

КодКлиента

НаимКлиента

АдресКлиента

МаркаТовара

ЕдИзмТовара

ЦенаПродажи

Количество

ЦенаТовара

КоличествоТовара

ПоставкиПрекращены

КодЗаказа

КодЗаказа

КодЗаказа

КодЗаказа

КодКлиента

КодКлиента

КодТовара

КодТовара

КодЗаказа + КодТовара

КодЗаказа + КодТовара

КодТовара

КодТовара

КодТовара

П, У

П, У

П, У

П, У

П, У

П, У

П, У

П, У

С, У

С, У

П, У

П, У

П, У

* Вид ключа: П – простой, С – составной, У – уникальный

Таблица 1.6

Наименование

реквизита

Вид

ключа *

Имя

ИО

Наименование

ИО

Семантика

(описание ИО)

КодЗаказа

ДатаОформления

ДатаНазначения

ДатаИсполнения

КодКлиента

П, У

В

Заказы Заказы Общие сведения о заказах
КодКлиента

НиамКлиента

АдресКлиента

П, У Клиенты Справочник

клиентов

Данные о клиентах, осуществляющих заказы
КодТовара

МаркаТовара

ЕдИзмТовара

ЦенаТовара

КоличествоТовара

ПоставкиПрекращены

П, У Товары Справочник

товаров

Данные о реализуемых товарах
КодЗаказа

КодТовара

ЦенаПродажи

Количество

с, уВ

В

Заказано Спецификация

заказа

Данные о заказанном товаре в каждом заказе

* Вид ключа: В – внешний (ключ связи)

Для удобства восприятия информации, представленной в таблице 1.6, преобразуем ее и отобразим в таблице 1.7.

Таблица 1.7

Имя

ИО

Наименование

реквизита

Имя

реквизита

Вид

ключа *

Заказы Заказ №

Дата оформления

Дата назначения

Дата исполнения

Код клиента

КодЗаказа

ДатаОформления

ДатаНазначения

ДатаИсполнения

КодКлиента

П, У

В

Клиенты Код клиента

Наименование клиента

Адрес клиента

КодКлиента

НиамКлиента

АдресКлиента

П, У
Товары Код товара

Марка товара

Ед. изм. товара

Цена

Количество

Поставки прекращены

КодТовара

МаркаТовара

ЕдИзмТовара

ЦенаТовара

КоличествоТовара

ПоставкиПрекращены

П, У
Заказано Заказ №

Код товара

Цена

Количество

КодЗаказа

КодТовара

ЦенаПродажи

Количество

с, уВ

В

4. Выявление связей информационных объектов

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

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

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

Таблица 1.8

Номер

связи

Главный ИО Тип

отношения

Подчиненный ИО
Имя Ключ связи Ключ связи Имя
1 Клиенты КодКлиента 1 : М КодКлиента Заказы
2 Заказы КодЗаказа 1 : М КодЗаказа Заказано
3 Товары КодТовара 1 : М КодТовара Заказано

5. Построение информационно-логической модели в каноническом виде

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

На 0 уровне (вершина модели) размещаются информационные объекты, которые не содержат внешних ключей: Клиенты и Товары (см. табл. 1.7).

На 1 уровне размещаются информационные объекты, которые содержат только внешние ключи объектов, расположенных на 0 уровне – Заказы.

На 2 уровне размещаются информационные объекты, которые содержат только внешние ключи объектов, расположенных на 0 и 1 уровне – Заказано.

Информационно-логическая модель предметной области «Отдел реализации» в каноническом виде представлена на рис.1.1.

 

Рис.1.1. Информационно-логическая модель

предметной области «Отдел реализации»

ЗАДАНИЕ ДЛЯ САМОСТОЯТЕЛЬНОЙ РАБОТЫ

К ЛАБОРАТОРНОЙ РАБОТЕ №1

Цель: Закрепить навыки по созданию информационно-логической модели предметной области.

Условие задания:

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

Документ 1. Товары поставщика

Поставщик:

код _________ наименование __________________________________________________

адрес ______________________________________________________________________

Список поставляемых товаров:

Код

товара

Марка товара Ед. изм.

товара

Документ 2. Товары по типам

Тип:

код _________ наименование __________________________________________________

Код

товара

Марка товара

Описание и ограничения предметной области:

– каждый товар поставляется одним поставщиком;

– один поставщик может поставлять много товаров;

– каждый поставщик идентифицируется уникальным кодом;

– каждый товар принадлежит только одному типу;

– каждый тип имеет уникальный код (наименования типов не повторяются);

– к одному типу может относиться много товаров.

Литература:

Лекция 1. Введение в базы данных.

Лекция 2. Основы проектирования баз данных.

Экономическая информатика. Учебник для вузов. Под ред. проф. В. В. Евдокимова. – СПб.: Питер, 1997. – [С446 – 466]

Метки: