База данных "Магазин косметики"

Тип работы:
Курсовая
Предмет:
Программирование


Узнать стоимость

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

Выдержка из работы

Содержание

  • 1 Техническое задание 6
    • 1. 1 Основание для разработки 6
    • 1. 2 Назначение разработки 6
    • 1. 3 Стандарты 6
    • 1. 4 Требования к программе или программному изделию 6
      • 1.4. 1 Носители информации 7
      • 1.4. 2 Требования к составу и параметрам технических средств 7
  • 2 Технический проект 8
    • 2.1 Описание предметной области 8
    • 2.2 Словарь понятий и терминов 8
    • 2.4 Определения функциональных зависимостей 15
      • Ключевые зависимости 15
      • Неключевые зависимости 17
      • Универсальные зависимости 18
    • 2.5 Синтез схемы базы данных на основании функциональных зависимостей 19
      • 2.5.1 Построение неизбыточного покрытия 19
      • 2.5.2 Построение леворедуцированного покрытия 20
      • 2.5.3 Построение праворедуцированного покрытия 23
      • 2.5.4 Построение классов эквивалентности 25
      • 2.5.5 Построение редуцированного минимального кольцевого покрытия на основе прямой функциональной определяемости 27
      • Построение редуцированного минимального кольцевого покрытия 28
    • 2.6 Построение запросов на SQL 32
      • 2.6.1 Запрос на выборку 32
      • 2.6.1.1 Словесная формулировка запроса 32
  • 2.6.1.3 Исходное дерево запроса 34
  • Рисунок 2. 21 — Оптимизированное дерево запроса на основании операции проекции 50
  • 2.6.1.8 Расчет сложности запроса 51
  • Приложение А 61
  • Реферат
  • Объем данного курсового проекта равен __ страницам. В курсовом проекте содержится два приложения, в которых приведены ER-схемы базы данных, код программы. Также в КП содержится постановка задачи.
  • Ключевые слова:
  • База данных, ER-схема, сущность, атрибут, ключ, связь, функциональная зависимость, система функциональных зависимостей.
  • Ключевые слова и словосочетания данной курсовой работы: база данных, магазин косметики, учёт, продажа, поставка.
  • Объектом исследования является учёт операций и товаров в магазине косметики. Предмет исследования — база данных магазина косметики.
  • Целью работы является разработка базы данных магазина косметики, позволяющая вести учёт и анализ поставок и продаж. Результатом работы является оптимизированная (приведенная к третьей нормальной форме) модель этой базы данных.
  • При разработке структуры базы данных используется два метода — метод ER-диаграмм и метод синтеза.
  • Разработанная структура базы данных может быть воплощена в системе управления базами данных (например, FoxPro) и использоваться для ведения учета поставок и продаж магазином косметики.
  • Определения
  • В тексте данной работы использованы следующие термины и сокращения:
  • В данной работе применены следующие термины с соответствующими определениями:
  • база данных: Файлы, снабженные описанием хранимых в них данных и находящиеся под управлением СУБД;
  • er-диаграмма: Схема базы данных, спроектированная с помощью программы ERWin;
  • сущность: Любой различимый объект (объект, который мы можем отличить от другого), информацию о котором необходимо хранить в базе данных;
  • атрибут: Поименованная характеристика сущности;
  • ключ: Минимальный набор атрибутов, по значениям которых можно однозначно найти требуемый экземпляр сущности;
  • связь: Ассоциирование двух или более сущностей;
  • производитель: Юридическое или физическое лицо, изготовляющее косметику;
  • представитель: Юридическое или физическое лицо, представляющее интересы производителя в России.
  • рекомендация: Описание товара, позволяющее покупателю сделать более точный выбор (например, «шампунь для сухих волос» или «крем для жирной кожи»);
  • состав: Перечень веществ, входящих в косметику;
  • контрагент: Юридическое или физическое лицо, участвующее в сделках купли-продажи с магазином косметики;
  • Обозначения и сокращения
  • В данной работе применены следующие сокращения:
  • БД: База данных;
  • СУБД: Система управления базами данных;
  • ФЗ: Функциональная зависимость;
  • ИНН: Идентификационный номер налогоплательщика;
  • КПП: Код причины постановки на учет в налоговых органах;
  • БИК: Банковский идентификационный код;
  • к/с: Корреспондентный счет;
  • р/с: Расчетный счет;

1 Техническое задание

1. 1 Основание для разработки

Основанием для разработки программного продукта служит задание на курсовую работу по предмету «Базы данных»" на тему «Магазин косметики».

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

1. 2 Назначение разработки

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

1. 3 Стандарты

Данная работа оформлена в соответствии со стандартом СТУ 04. 02. 030. -2008.

1. 4 Требования к программе или программному изделию

В программе требуется реализовать учет косметики: (тип, вид, название, состав, цена-оптовая, закупочная, себестоимость, розница, количество, где произведена, кем произведена, когда произведена). Также необходимо определить, способы покупки косметики. Спроектировать базу данных для магазина косметики. Описать предметную область, разработать словарь понятий и терминов, построить систему функциональных зависимостей. Синтезировать схему базы данных на основании функциональных зависимостей (построение неизбыточного покрытия, построение леворедуцированного неизбыточного покрытия, построение праворедуцированного неизбыточного покрытия, построение классов эквивалентностей, построение минимального покрытия). Построить уточненную концептуальную модель в виде ER-диаграммы, запросы предметной области. Записать минимизированные запросы на языке SQL.

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

база данные учет магазин

1.4. 1 Носители информации

Продукт должен размещаться в виде файлов на CD дисках. В процессе работы могут использоваться Flash, CD-R/-RW, DVD-R/RW или другие носители информации.

1.4. 2 Требования к составу и параметрам технических средств

Программный комплекс должен корректно работать на компьютере со следующими техническими характеристиками (минимальные требования):

? процессор Pentium V 2200 МГц;

? оперативная память объемом 1024 Мб;

? жесткий диск Seagate Barracuda, объемом 120 Гб;

? видеоадаптер SVGA;

? клавиатура;

? манипулятор типа «мышь»;

устройство удаленного доступа к сети: модем или сетевая карта.

2 Технический проект

2.1 Описание предметной области

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

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

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

При совершении сделок формируется накладная (приходная или расходная), состоящая строк — видов косметики, закупленных в определенном количестве по определенной цене.

По продажам отслеживается статус оплаты.

Для удобства покупателей косметика снабжается рекомендациями.

2.2 Словарь понятий и терминов

Словарь понятий и терминов приведен в таблицах 2.1 — 2. 21.

Таблица 2.1 — Номенклатура

Термины

Смысл

Обозначение

Пример значения

Код номенклатуры

Код товара по каталогу

kod_nom

16

Название номенклатуры

Название товара в каталоге

name_nom

Помада Марон Глясе

Код страны

Код страны-производителя данного товара

kod_str

3

Код производителя

Код фирмы-производителя данного товара

kod_proiz

5

Единица измерения

Единицы, в которых измеряется количество данного товара

ed_izm

шт

Вес

Вес единицы данного товара (в килограммах)

ves

0. 12

Таблица 2.2 — Цена

Термины

Смысл

Обозначение

Пример значения

Код цены

Код цены в списке цен

kod_pr

19

Код типа цены

Код типа цены

kod_tp

2

Код номенклатуры

Код товара, цена на который указывается, по каталогу

kod_nom

23

Цена

Цена на данный товар

price

230. 0

Таблица 2.3 — Тип цены

Термины

Смысл

Обозначение

Пример значения

Код типа цены

Код типа цены в списке типов цен

kod_tp

2

Название типа цены

Название типа цены

name_tp

Закупочная

Код валюты

Код валюты, используемой для данного типа цены

kod_val

3

Таблица 2.4 — Валюта

Термины

Смысл

Обозначение

Пример значения

Код валюты

Код валюты

kod_val

4

Название валюты

Общепринятое название для данной валюты

name_val

USD

Курс

Курс данной валюты по отношению к рублю

kurs

23. 80

Таблица 2.5 — Производитель

Термины

Смысл

Обозначение

Пример значения

Код производителя

Код производителя в списке производителей

kod_proiz

9

Название

Название производителя

name_proiz

GreenMama

Город

Город (юридический адрес производителя)

city_pz

Москва

Улица

Улица (юридический адрес производителя)

street_pz

Суворовская

Дом

Дом (юридический адрес производителя)

house_pz

25

Офис

Офис (юридический адрес производителя)

office_pz

17

Телефон

Контактный телефон производителя

phone_pz

89 103 121 111

Таблица 2.6 — Представитель

Термины

Смысл

Обозначение

Пример значения

Код представителя

Код представителя в списке представителей

kod_pred

9

Название

Название представителя

name_pred

Солнышко

Код производителя

Код производителя в списке производителей

kod_proiz

9

Город

Город (юридический адрес представителя)

city_pr

Москва

Улица

Улица (юридический адрес представителя)

street_pr

Суворовская

Дом

Дом (юридический адрес представителя)

house_pr

25

Офис

Офис (юридический адрес представителя)

office_pr

17

Телефон

Контактный телефон производителя

phone_pr

89 103 121 111

Таблица 2.7 — Страна

Термины

Смысл

Обозначение

Пример значения

Код страны

Код страны в списке стран

kod_str

9

Название

Название страны

name_str

Россия

Таблица 2.8 — Рекомендация

Термины

Смысл

Обозначение

Пример значения

Код рекомендации

Код рекомендации в списке рекомендаций

kod_rek

5

Код номенклатуры

Код товара в каталоге, к которому относится рекомендация

kod_nom

34

Код варианта

Код варианта рекомендации

kod_var

8

Таблица 2.9 — Вариант рекомендации

Термины

Смысл

Обозначение

Пример значения

Код варианта рекомендации

Код варианта рекомендации в списке вариантов рекомендаций

kod_var

6

Рекомендация

Суть рекомендации

rek

Для жирной кожи

Таблица 2. 10 — Состав

Термины

Смысл

Обозначение

Пример значения

Код состава

Код состава в списке составов

kod_sost

4

Код номенклатуры

Код товара в каталоге, к которому относится состав

kod_nom

22

Код вещества

Код вещества, входящего в данный состав

kod_vv

14

Таблица 2. 11 — Вещество

Термины

Смысл

Обозначение

Пример значения

Код вещества

Код вещества в списке веществ

kod_vv

3

Название

Название вещества

name_vv

Гидрохлорид калия

Таблица 2. 12 — Продажа

Термины

Смысл

Обозначение

Пример значения

Код продажи

Код продажи в списке продаж

kod_prod

150

Дата

Дата продажи

date_prod

12. 03. 2007

Код контрагента

Код контрагента, которому был продан товар

kod_ka

12

Код типа цен

Код типа цены, использованной при данной продаже

kod_tp

2

Таблица 2. 13 — Строка продажи

Термины

Смысл

Обозначение

Пример значения

Код строки продажи

Код строки продажи в списке строк продаж

kod_spr

108

Код продажи

Код продажи, в которую входит данная строка

kod_prod

140

Код номенклатуры

Товар, который был продан

kod_nom

9

Цена

Цена, по которой был продан данный товар

price_r

130. 90

Количество

Количество данного товара, которое было продано

kolvo

1

Таблица 2. 14 — Поставка

Термины

Смысл

Обозначение

Пример значения

Код поставки

Код поставки в списке поставок

kod_post

150

Дата

Дата поставки

date_post

12. 03. 2007

Код контрагента

Код контрагента, у которого был куплен товар

kod_ka

12

Код типа цен

Код типа цены, использованной при данной поставке

kod_tp

2

Таблица 2. 15 — Строка поставки

Термины

Смысл

Обозначение

Пример значения

Код строки поставки

Код строки поставки в списке строк поставок

kod_spo

108

Код поставки

Код поставки, в которую входит данная строка

kod_post

140

Код номенклатуры

Товар, который был куплен

kod_nom

9

Цена

Цена, по которой был куплен данный товар

price_rr

130. 90

Количество

Количество данного товара, которое было куплено

kolvo

1

Таблица 2. 16 — Контрагент

Термины

Смысл

Обозначение

Пример значения

Код контрагента

Код контрагента в списке строк контрагентов

kod_ka

28

Название

Название фирмы-контрагента

name_ka

Яблочко

Город

Город (юридический адрес контрагента)

city_ka

Москва

Улица

Улица (юридический адрес контрагента)

street_ka

Суворовская

Дом

Дом (юридический адрес контрагента)

house_ka

25

Офис

Офис (юридический адрес контрагента)

office_ka

17

Телефон

Контактный телефон контрагента

phone_ka

89 103 121 111

ИНН

Идентификационный номер налогоплательщика

inn_ka

463 226 468 770

КПП

Код причины постановки на учет

kpp_ka

772 222 222

Таблица 2. 17 — Банковский счет

Термины

Смысл

Обозначение

Пример значения

Код счета

Уникальный номер счета

kod_sch

40 703 810 000 000 000 000

Код банка

Код банка, в котором открыт счет

kod_bank

47 144 000

Код контрагента

Код контрагента — владельца счета

kod_ka

15

Таблица 2. 18 — Банк

Термины

Смысл

Обозначение

Пример значения

БИК

Банковский идентификационный код

kod_sch

47 144 000

К/с

Корр счет

ks

30 101 810 600 000 000 000

Название

Название банка

name_bank

Промбанк

Город

Город, в котором расположено отделение, в котором открыт счет

city_b

Курск

Таблица 2. 19 — Магазин

Термины

Смысл

Обозначение

Пример значения

Код организации

Код подразделения магазина

kod_org

7

Название

Название подразделения

name_org

Курское отделение

Город

Город, в котором расположено подразделение (юридический адрес)

city

Курск

Улица

Улица, на которой расположено подразделение (юридический адрес)

street

Советская

Дом

Дом, в котором расположено подразделение (юридический адрес)

house

18

Офис

Офис, в котором расположено подразделение (юридический адрес)

office

11

Телефон

Контактный телефон подразделения

phone

89 045 213 468

ИНН

Идентификационный номер налогоплательщика

inn

463 226 468 770

КПП

Код причины постановки на учет

kpp

772 222 222

Расчетный счет

Уникальный номер счета

rs

40 703 810 000 000 000 000

БИК

Банковский идентификационный код

kod_sch

47 144 000

Таблица 2. 20 — Оплата

Термины

Смысл

Обозначение

Пример значения

Код оплаты

Код оплаты в списке оплат

kod_opl

2

Код продажи

Код продажи, к которой относится оплата

kod_prod

9

Код статуса

Код статуса оплаты

kod_st

2

Таблица 2. 21 — Статус оплаты

Термины

Смысл

Обозначение

Пример значения

Код статуса

Код статуса в списке статусов

kod_st

2

Название

Название статуса

name_st

Оплачен

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

Ключевые зависимости

Одному коду номенклатуры не могут соответствовать номенклатуры с разными названиями, кодами стран-производителей, кодами производителей, единицами измерения, весом.

Одному коду цены не могут соответствовать цены с разным типом цены, кодом номенклатуры, ценой.

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

Одному коду валюты не могут соответствовать валюты с разными названиями, курсами.

Одному коду производителя не могут соотвтетствовать производители с разными названиями, адресами — городами, улицами, домами, офисами и телефонами.

Одному коду представителя не могут соответствовать представители с разными названиями, кодами производителя, адресами — городами, улицами, домами, офисами и телефонами.

Одному коду страны не могут соответствовать страны с разными названиями.

Одному коду рекомендаций не могут соответствовать рекомендации к разным номенклатурам, с разными вариантами рекомендаций.

Одному коду варианта рекомендаций не могут соответствовать разные варианты рекомендаций.

Одному коду состава не могут соответствовать составы разных номенклатур, разные вещества.

Одному коду вещества не могут соответствовать вещества с разными названиями.

Одному коду продаж не могут соответствовать продажи с разными датами, участниками-контрагентами и кодами типа цены.

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

Одному коду поставок не могут соответствовать поставки с разными датами, участниками-контрагентами и кодами типа цены.

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

Одному коду контрагента не могут соотвтетствовать контрагенты с разными названиями, адресами — городами, улицами, домами, офисами и телефонами, ИНН и КПП.

Одному коду счета не могут соответствовать разные коды банка и разные коды контрагента.

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

Одному коду подразделения не могут соответствовать подразделения с разными названиями, адресами — городами, улицами, домами, офисами и телефонами, ИНН и КПП, р/с и БИК.

Одному коду оплаты не могут соответствовать разные продажи и разные статусы.

Одному коду статуса не могут соответствовать разные названия статусов.

Ключевые зависимости представлены на рисунке 2.1.

kod_nom-> name_nom, kod_str, kod_proiz, ed_izm, ves

kod_pr-> kod_tp, kod_nom, price

kod_tp-> name_tp, kod_val

kod_val-> name_val, kurs

kod_proiz-> name_proiz, city_pz, street_pz, house_pz, office_pz, phone_pz

kod_pred-> name_pred, kod_proiz, city_pr, street_pr, house_pr, office_pr, phone_pr

kod_str-> name_str

kod_rek-> kod_nom, kod_var

kod_var-> rek

kod_sost-> kod_nom, kod_vv

kod_vv-> name_vv

kod_prod-> date_prod, kod_ka, kod_tp

kod_spr-> kod_prod, kod_nom, price_r, kolvo

kod_post-> date_post, kod_ka, kod_tp

kod_spo-> kod_post, kod_nom, price_rr, kolvo

kod_ka-> name_ka, city_ka, street_ka, house_ka, office_ka, phone_ka, inn_ka, kpp_ka

kod_sch-> kod_bank, kod_ka

bik-> ks, name_bank, city_b

kod_org-> name_org, city, street, house, office, phone, inn_org, kpp, rs, bik

kod_opl-> kod_prod, kod_st

kod_st-> name_st

Рисунок 2.1 — Ключевые зависимости

Неключевые зависимости

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

Одному названию номенклатуры от определенного производителя может соответствовать только одна единица измерения и вес.

Одному ИНН контрагента может соответствовать только одно название контрагента.

Одному названию валюты может соответстовать только один курс.

Одной номенклатуре в одной продаже может соответствовать только одна цена.

Одной номенклатуре в одной поставке может соответствовать только одна цена.

Неключевые зависимости представлены на рисунке 2.2.

kod_tp, kod_nom-> price

name_nom, kod_proiz-> ed_izm, ves

inn_ka-> name_ka

name_val-> kurs

kod_prod, kod_nom-> price_r

kod_post, kod_nom-> price_rr

Рисунок 2.2 — Неключевые зависимости

Универсальные зависимости

Код цены, код типа цены, код номенклатуры и значение цены определяют запись таблицы «Цена».

Код номенклатуры, название номенклатуры, код страны-производителя, код производителя, единицы измерения и вес определяют запись таблицы «Номенклатура».

Код контрагента, название контрагента, адрес контрагента — город, улица, дом, офис, телефон; ИНН и КПП определяют запись таблицы «Контрагент».

Код валюты, название валюты, курс валюты определяют запись таблицы «Валюта».

Код строки поставок, код поставки, код номенклатуры, цена и количество определяют запись таблицы «Строки поставок».

Код строки продаж, код продажи, код номенклатуры, цена и количество определяют запись таблицы «Строки продаж».

Универсальные зависимости представлены на рисунке 2.3.

kod_pr, kod_tp, kod_nom, price -> *

kod_nom, name_nom, kod_str, kod_proiz, ed_izm, ves -> *

kod_ka, name_ka, city_ka, street_ka, house_ka, office_ka, phone_ka, inn_ka, kpp_ka -> *

kod_val, name_val, kurs -> *

kod_spo, kod_post, kod_nom, price_rr, kolvo -> *

kod_spr, kod_prod, kod_nom, price_r, kolvo -> *

Рисунок 2.3 — Универсальные зависимости

2.5 Синтез схемы базы данных на основании функциональных зависимостей

2.5.1 Построение неизбыточного покрытия

Этапы построения неизбыточного покрытия представлены на рис. 2.4.

1. f=g kod_pr, kod_tp, kod_nom, price -> *

Проверяем: f |= kod_pr, kod_tp, kod_nom, price -> *

[kod_pr, kod_tp, kod_nom, price]+f = kod_pr, kod_tp, kod_nom, price, name_nom, kod_str, kod_proiz, ed_izm, ves, name_tp, kod_val, name_val, kurs, name_proiz, city_pz, street_pz, house_pz, office_pz, phone_pz, name_str, *

Да => g=f

2. f=g kod_spo, kod_post, kod_nom, price_rr, kolvo -> *

Проверяем: f |= kod_spo, kod_post, kod_nom, price_rr, kolvo -> *

[kod_spo, kod_post, kod_nom, price_rr, kolvo]+f = kod_spo, kod_post, kod_nom, price_rr, kolvo, name_nom, kod_str, kod_proiz, ed_izm, ves, name_proiz, city_pz, street_pz, house_pz, office_pz, phone_pz, name_str, date_post, kod_ka, kod_tp, name_tp, kod_val, name_val, kurs, name_ka, city_ka, street_ka, house_ka, office_ka, phone_ka, inn_ka, kpp_ka, price, *

Да => g=f

3. f=g kod_spr, kod_prod, kod_nom, price_r, kolvo -> *

Проверяем: f |= kod_spr, kod_prod, kod_nom, price_r, kolvo -> *

[kod_spr, kod_prod, kod_nom, price_r, kolvo]+f = kod_spr, kod_prod, kod_nom, price_r, kolvo, name_nom, kod_str, kod_proiz, ed_izm, ves, name_proiz, city_pz, street_pz, house_pz, office_pz, phone_pz, name_str, date_prod, kod_ka, kod_tp, name_tp, kod_val, name_val, kurs, name_ka, city_ka, street_ka, house_ka, office_ka, phone_ka, inn_ka, kpp_ka, price, *

Да => g=f

Рисунок 2.4 — Этапы построения неизбыточного покрытия

Неизбыточное покрытие представлено на рисунке 2.5.

kod_nom -> name_nom, kod_str, kod_proiz, ed_izm, ves

kod_pr -> kod_tp, kod_nom, price

kod_tp -> name_tp, kod_val

kod_val -> name_val, kurs

kod_proiz -> name_proiz, city_pz, street_pz, house_pz, office_pz, phone_pz

kod_pred -> name_pred, kod_proiz, city_pr, street_pr, house_pr, office_pr, phone_pr

kod_str -> name_str

kod_rek -> kod_nom, kod_var

kod_var -> rek

kod_sost -> kod_nom, kod_vv

kod_vv -> name_vv

kod_prod -> date_prod, kod_ka, kod_tp

kod_spr -> kod_prod, kod_nom, price_r, kolvo

kod_post -> date_post, kod_ka, kod_tp

kod_spo -> kod_post, kod_nom, price_rr, kolvo

kod_ka -> name_ka, city_ka, street_ka, house_ka, office_ka, phone_ka, inn_ka, kpp_ka

kod_sch -> kod_bank, kod_ka

bik -> ks, name_bank, city_b

kod_org -> name_org, city, street, house, office, phone, inn_org, kpp, rs, bik

kod_opl -> kod_prod, kod_st

kod_st -> name_st

kod_tp, kod_nom -> price

name_nom, kod_proiz -> ed_izm, ves

inn_ka -> name_ka

name_val -> kurs

kod_prod, kod_nom -> price_r

kod_nom, name_nom, kod_str, kod_proiz, ed_izm, ves -> *

kod_ka, name_ka, city_ka, street_ka, house_ka, office_ka, phone_ka, inn_ka, kpp_ka -> *

kod_val, name_val, kurs -> *

Рисунок 2.5 — Неизбыточное покрытие

2.5.2 Построение леворедуцированного покрытия

Этапы построения леворедуцированного покрытия представлены на рисунке 2.6 — 2.7.

1. kod_nom, name_nom, kod_str, kod_proiz, ed_izm, ves -> *

1.1. kod_nom, name_nom, kod_str, kod_proiz, ed_izm, ves -> *

Проверяем: g |= kod_nom, kod_str, kod_proiz, ed_izm, ves -> *

Да => множество ФЗ изменяется

1.2. kod_nom, kod_str, kod_proiz, ed_izm, ves -> *

Проверяем: g |= kod_nom, kod_proiz, ed_izm, ves -> *

Да => множество ФЗ изменяется

1.3. kod_nom, kod_proiz, ed_izm, ves -> *

Проверяем: g |= kod_nom, ed_izm, ves -> *

Да => множество ФЗ изменяется

1.4. kod_nom, ed_izm, ves -> *

Проверяем: g |= kod_nom, ves -> *

Да => множество ФЗ изменяется

1.5. kod_nom, ves -> *

Проверяем: g |= kod_nom -> *

Да => множество ФЗ изменяется

1.6. kod_nom, ves -> *

Проверяем: g |= kod_nom -> *

Да => множество ФЗ изменяется

2. kod_ka, name_ka, city_ka, street_ka, house_ka, office_ka, phone_ka, inn_ka, kpp_ka -> *

2.1. kod_ka, name_ka, city_ka, street_ka, house_ka, office_ka, phone_ka, inn_ka, kpp_ka -> * Проверяем: g |= kod_ka, city_ka, street_ka, house_ka, office_ka, phone_ka, inn_ka, kpp_ka -> *

Да => множество ФЗ изменяется

Рисунок 2.6 — Этапы построения леворедуцированного покрытия

2.2. kod_ka, city_ka, street_ka, house_ka, office_ka, phone_ka, inn_ka, kpp_ka-> *

Проверяем: g |= kod_ka, street_ka, house_ka, office_ka, phone_ka, inn_ka, kpp_ka -> *

Да => множество ФЗ изменяется

2.3. kod_ka, street_ka, house_ka, office_ka, phone_ka, inn_ka, kpp_ka -> *

Проверяем: g |= kod_ka, house_ka, office_ka, phone_ka, inn_ka, kpp_ka -> *

Да => множество ФЗ изменяется

2.4. kod_ka, house_ka, office_ka, phone_ka, inn_ka, kpp_ka -> *

Проверяем: g |= kod_ka, office_ka, phone_ka, inn_ka, kpp_ka -> *

Да => множество ФЗ изменяется

2.5. kod_ka, office_ka, phone_ka, inn_ka, kpp_ka -> *

Проверяем: g |= kod_ka, phone_ka, inn_ka, kpp_ka -> *

Да => множество ФЗ изменяется

2.6. od_ka, phone_ka, inn_ka, kpp_ka -> *

Проверяем: g |= kod_ka, inn_ka, kpp_ka -> *

Да => множество ФЗ изменяется

2.7. kod_ka, inn_ka, kpp_ka -> *

Проверяем: g |= kod_ka, kpp_ka -> *

Да => множество ФЗ изменяется

2.8. kod_ka, kpp_ka -> *

Проверяем: g |= kod_ka -> *

Да => множество ФЗ изменяется

3. kod_val, name_val, kurs -> *

3.1. kod_val, name_val, kurs -> *

Проверяем: g |= kod_val, kurs -> *

Да => множество ФЗ изменяется

3.2. kod_val, kurs -> *

Проверяем: g |= kod_val -> *

Да => множество ФЗ изменяется

Рисунок 2.7 — Этапы построения леворедуцированного покрытия

Леворедуцированное покрытие представлено на рисунке 2.7.

kod_nom -> name_nom, kod_str, kod_proiz, ed_izm, ves

kod_pr -> kod_tp, kod_nom, price

kod_tp -> name_tp, kod_val

kod_val -> name_val, kurs

kod_proiz -> name_proiz, city_pz, street_pz, house_pz, office_pz, phone_pz

kod_pred -> name_pred, kod_proiz, city_pr, street_pr, house_pr, office_pr, phone_pr

kod_str -> name_str

kod_rek -> kod_nom, kod_var

kod_var -> rek

kod_sost -> kod_nom, kod_vv

kod_vv -> name_vv

kod_prod -> date_prod, kod_ka, kod_tp

kod_spr -> kod_prod, kod_nom, price_r, kolvo

kod_post -> date_post, kod_ka, kod_tp

kod_spo -> kod_post, kod_nom, price_rr, kolvo

kod_ka -> name_ka, city_ka, street_ka, house_ka, office_ka, phone_ka, inn_ka, kpp_ka

kod_sch -> kod_bank, kod_ka

bik -> ks, name_bank, city_b

kod_org -> name_org, city, street, house, office, phone, inn_org, kpp, rs, bik

kod_opl -> kod_prod, kod_st

kod_st -> name_st

kod_tp, kod_nom -> price

name_nom, kod_proiz -> ed_izm, ves

inn_ka -> name_ka

name_val -> kurs

kod_prod, kod_nom -> price_r

kod_nom-> *

kod_ka -> *

kod_val -> *

Рисунок 2.7 — Леворедуцированное покрытие

2.5.3 Построение праворедуцированного покрытия

Этапы построения праворедуцированного покрытия представлены на рисунке 2.8.

1. kod_nom -> name_nom, kod_str, kod_proiz, ed_izm, ves

1.1. Если удаляем ed_izm

Проверяем: f |= kod_nom -> ed_izm

Да => g=f

1.2. Если удаляем ves

Проверяем: f |= kod_nom -> ves

Да => g=f

2. kod_pr -> kod_tp, kod_nom, price

Если удаляем price

Проверяем: f |= kod_pr -> price

Да => g=f

3. kod_val -> name_val, kurs

Если удаляем kurs

Проверяем: f |= kod_val -> kurs

Да => g=f

4. kod_spr -> kod_prod, kod_nom, price_r, kolvo

Если удаляем price_r

Проверяем: f |= kod_spr -> price_r

Да => g=f

5. kod_spo -> kod_post, kod_nom, price_rr, kolvo

Если удаляем price_rr

Проверяем: f |= kod_spo -> price_rr

Да => g=f

6. kod_ka -> name_ka, city_ka, street_ka, house_ka, office_ka, phone_ka, inn_ka, kpp_ka

Если удаляем name_ka

Проверяем: f |= kod_ka -> name_ka

Да => g=f

Рисунок 2.8 — Этапы построения праворедуцированного покрытия

Праворедуцированное покрытие представлено на рисунке 2.9.

kod_nom -> name_nom, kod_str, kod_proiz

kod_pr -> kod_tp, kod_nom

kod_tp -> name_tp, kod_val

kod_val -> name_val

kod_proiz -> name_proiz, city_pz, street_pz, house_pz, office_pz, phone_pz

kod_pred -> name_pred, kod_proiz, city_pr, street_pr, house_pr, office_pr, phone_pr

kod_str -> name_str

kod_rek -> kod_nom, kod_var

kod_var -> rek

kod_sost -> kod_nom, kod_vv

kod_vv -> name_vv

kod_prod -> date_prod, kod_ka, kod_tp

kod_spr -> kod_prod, kod_nom, kolvo

kod_post -> date_post, kod_ka, kod_tp

kod_spo -> kod_post, kod_nom, kolvo

kod_ka -> city_ka, street_ka, house_ka, office_ka, phone_ka, inn_ka, kpp_ka

kod_sch -> kod_bank, kod_ka

bik -> ks, name_bank, city_b

kod_org -> name_org, city, street, house, office, phone, inn_org, kpp, rs, bik

kod_opl -> kod_prod, kod_st

kod_st -> name_st

kod_tp, kod_nom -> price

name_nom, kod_proiz -> ed_izm, ves

inn_ka -> name_ka

name_val -> kurs

kod_prod, kod_nom -> price_r

kod_post, kod_nom -> price_rr

kod_nom -> *

kod_ka -> *

kod_val -> *

Рисунок 2.9 — Праворедуцированное покрытие

2.5.4 Построение классов эквивалентности

Этапы построения классов эквивалентности представлены на рисунке 2. 10- 2. 11.

1. Ef (kod_nom):

kod_nom -> name_nom, kod_str, kod_proiz

kod_nom -> *

2. Ef (kod_pr):

kod_pr -> kod_tp, kod_nom

3. Ef (kod_tp):

kod_tp -> name_tp, kod_val

4. Ef (kod_val):

kod_val -> name_val; kod_val -> *

5. Ef (kod_proiz):

kod_proiz -> name_proiz, city_pz, street_pz, house_pz, office_pz, phone_pz

6. Ef (kod_pred):

kod_pred -> name_pred, kod_proiz, city_pr, street_pr, house_pr, office_pr, phone_pr

7. Ef (kod_str):

kod_str -> name_str

8. Ef (kod_rek):

kod_rek -> kod_nom, kod_var

9. Ef (kod_var):

kod_var -> rek

10. Ef (kod_sost):

kod_sost -> kod_nom, kod_vv

11. Ef (kod_vv):

kod_vv -> name_vv

12. Ef (kod_prod):

kod_prod -> date_prod, kod_ka, kod_tp

13. Ef (kod_spr):

kod_spr -> kod_prod, kod_nom, kolvo

14. Ef (kod_post):

kod_post -> date_post, kod_ka, kod_tp

15. Ef (kod_spo):

kod_spo -> kod_post, kod_nom, kolvo

16. Ef (kod_ka):

kod_ka -> city_ka, street_ka, house_ka, office_ka, phone_ka, inn_ka, kpp_ka

kod_ka -> *

17. Ef (kod_sch):

kod_sch -> kod_bank, kod_ka

Рисунок 2. 10 — Этапы построения классов эквивалентности

18. Ef (bik):

bik -> ks, name_bank, city_b

19. Ef (kod_org):

kod_org -> name_org, city, street, house, office, phone, inn_org, kpp, rs, bik

20. Ef (kod_opl):

kod_opl -> kod_prod, kod_st

21. Ef (kod_st):

kod_st -> name_st

22. Ef (kod_tp, kod_nom):

kod_tp, kod_nom -> price

23. Ef (name_nom, kod_proiz):

name_nom, kod_proiz -> ed_izm, ves

24. Ef (inn_ka):

inn_ka -> name_ka

25. Ef (name_val):

name_val -> kurs

26. Ef (kod_prod, kod_nom):

kod_prod, kod_nom -> price_r

27. Ef (kod_post, kod_nom):

kod_post, kod_nom -> price_rr

Рисунок 2. 11 — Этапы построения классов эквивалентности

2.5.5 Построение редуцированного минимального кольцевого покрытия на основе прямой функциональной определяемости

Этапы построения минимального покрытия на основе прямой функциональной определяемости представлены на рисунке 2. 11.

1. Проверка: f Ef (kod_nom) |= kod_nom -> kod_nom?

Да => заменяем kod_nom -> name_nom, kod_str, kod_proiz и kod_nom -> * на kod_nom -> name_nom, kod_str, kod_proiz, *.

2. Проверка: f Ef (kod_val) |= kod_val -> kod_val?

Да => заменяем kod_val -> name_val и kod_val -> * на kod_val -> name_val, *.

3. Проверка: f Ef (kod_ka) |= kod_ka -> kod_ka?

Да => заменяем kod_ka -> city_ka, street_ka, house_ka, office_ka, phone_ka, inn_ka, kpp_ka и kod_ka -> * на kod_ka -> city_ka, street_ka, house_ka, office_ka, phone_ka, inn_ka, kpp_ka, *.

Рисунок 2. 11 — Этапы построения минимального покрытия на основе прямой функциональной определяемости

Редуцированное минимальное покрытие представлено на рисунке 2. 12.

kod_pr -> kod_tp, kod_nom

kod_tp -> name_tp, kod_val

kod_proiz -> name_proiz, city_pz, street_pz, house_pz, office_pz, phone_pz

kod_pred -> name_pred, kod_proiz, city_pr, street_pr, house_pr, office_pr, phone_pr

kod_str -> name_str

kod_rek -> kod_nom, kod_var

kod_var -> rek

kod_sost -> kod_nom, kod_vv

kod_vv -> name_vv

kod_prod -> date_prod, kod_ka, kod_tp

kod_spr -> kod_prod, kod_nom, kolvo

kod_post -> date_post, kod_ka, kod_tp

kod_spo -> kod_post, kod_nom, kolvo

kod_sch -> kod_bank, kod_ka

bik -> ks, name_bank, city_b

kod_org -> name_org, city, street, house, office, phone, inn_org, kpp, rs, bik

kod_opl -> kod_prod, kod_st

kod_st -> name_st

kod_tp, kod_nom -> price

name_nom, kod_proiz -> ed_izm, ves

inn_ka -> name_ka

name_val -> kurs

kod_prod, kod_nom -> price_r

kod_post, kod_nom -> price_rr

kod_nom -> name_nom, kod_str, kod_proiz, *

kod_val -> name_val, *

kod_ka -> city_ka, street_ka, house_ka, office_ka, phone_ka, inn_ka, kpp_ka, *

Рисунок 2. 12 — Редуцированное минимальное покрытие

Построение редуцированного минимального кольцевого покрытия

Определение CF-зависимостей по классам эквивалентности

ПоказатьСвернуть
Заполнить форму текущей работой