Оптимизация базы данных "Хозяйственный учет футбольного клуба"

Неформализованное описание предметной области. Словарь терминов для объектов и элементов данных. Первичные и альтернативные ключи. Диаграмма сущность-связь для предметной области. Неизбыточное редуцированное покрытие системы функциональных зависимостей.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 22.03.2015
Размер файла 398,8 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Курсовая работа

По дисциплине "Теория оптимизации баз данных"

На тему: "Оптимизация базы данных "Хозяйственный учет футбольного клуба"

Содержание

  • 1. Техническое задание
    • 1.1 Неформализованное описание предметной области
    • 1.2 Формализованное описание предметной области
      • 1.2.1 Словарь терминов для объектов и элементов данных
      • 1.2.2 Первичные и альтернативные ключи
      • 1.2.3 Диаграмма сущность - связь для предметной области
  • 2. Модель предметной области в виде системы функциональных зависимостей
    • 2.1. Функциональные зависимости для отношений предметной области
      • 2.1.1 Ключевые функциональные зависимости
        • 2.1.2 Не ключевые функциональные зависимости
        • 2.1.3 Функциональные зависимости для сохранения иерархии
        • 2.1.4 Функциональные зависимости для устранения потери информации при соединении
        • 2.1.5 Исходное множество функциональных зависимостей
    • 3. Неизбыточное редуцированное покрытие системы функциональных зависимостей
    • 3.1 Построение неизбытычного покрытия
    • 3.2 Построение леворедуцированного покрытия
    • 3.3 Построение праворедуцированного покрытия
    • 4. Минимальное кольцевое редуцированное покрытие системы функциональных зависимостей
    • 4.1 Естественно-характеристическое множество
    • 4.2 Диаграмма сущность - связь, построенная на основании минимального кольцевого редуцированного покрытия множества функциональных зависимостей
    • 4.3 Физическая структура базы данных
  • 5. Построение запросов на языке SQL
    • 5.1 Многотабличный запрос на выборку по условию нескольких строк и логической формулы условий столбцов
      • 5.1.1 Выражение для запроса с использованием операций реляционной алгебры
      • 5.1.2 Исходный запрос на языке SQL
      • 5.1.3 Временные характеристики исходного запроса
      • 5.1.4 Оптимизированное операционное дерево для запроса
      • 5.1.5 Оптимизированный запрос на языке SQL
      • 5.1.6 Временные характеристики оптимизированного запроса
    • 5.2 Многотабличный запрос на выборку по условию нескольких строк и логической формулы условий столбцов с использованием "or"
      • 5.2.1 Выражение для запроса с использованием операций реляционной алгебры
      • 5.2.2 Исходное операционное дерево для запроса
      • 5.2.3 Исходный запрос на языке SQL
      • Заключение
      • Список литературы
  • Приложение

предметный область неформализированный редуцирование

Введение

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

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

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

Для инвентаря и техники хранится информация о фирме-изготовителе и модели товара. Для мебели должна быть отражена информация о фирме-производителе, цвете, габаритных размерах (длина, ширина, высота).

Каждой единице в поступившей партии объектов присваивается инвентарный номер, который ее однозначно определяет.

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

Инвентарь, техника и мебель могут быть списаны, при этом хранится дата списания.

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

1.1 Неформализованное описание предметной области

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

Тренеры - информация обо всех тренерах клуба, в том числе имя, фамилия, статус, и т.д.

Игроки - информация обо всех игроках клуба, в том числе имя, фамилия, амплуа, игровой номер, и т.д.

Помещения - информация о помещениях, в том числе номер, площадь, и т.д.

Комнаты - информация о помещениях, предназначенных для проживания, в том числе номер комнаты.

Залы - информация о помещениях, предназначенных для тренировок, в том числе номер, назначение и т.д.

Поступление объектов - информация о поставленной технике, мебели, спортивном инвентаре, в том числеID, цена и дата поступления.

Спортивный инвентарь - информация о поставленном спортивном инвентаре, в том числе производитель, наименование и т.д.

Техника - информация о поставленной технике, в том числе производитель, наименование и т.д.

Мебель - информация о поставленной мебели, в том числе наименование, производитель и габариты.

Размещение объектов по помещениям - информация о соответствии помещений и прикрепленных к ним объектам, в том числе инвентарый номер объекта и номер помещения.

Расселение людей по комнатам - информация о комнатах и проживающих в них людях, в том числе номер помещения и номер пасспорта человека.

Инвентаризация объектов - информация об инвентаризации объектов, в том числе IDобъекта и его инвентарный номер.

Списание объектов - информация о списании объектов, в том числе инвентарный номер объекта, дата списания, причина и т.д.

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

Человек проживает в комнате

Мебель подлежит инвентаризации

Техника подлежит инвентаризации

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

Мебель подлежит списанию

Техника подлежит списанию

Спортивный инвентарь подлежит списанию

Спортивный инвентарь прикрепляется к спортивному залу

Мебель прикрепляется к помещению

Техника прикрепляется к помещению

1.2 Формализованное описание предметной области

1.2.1 Словарь терминов для объектов и элементов данных

Словарь терминов для объектов и элементов данных представлен втаблицах 1.1 - 1.21.

Таблица 1.1 - Person

Атрибут

Смысл

Пример

passport

Паспорт

35690123654

date

Дата

12.12.2004

rost

Рост

180

ves

Вес

79

Таблица 1.2 - Игроки

Атрибут

Смысл

Пример

staff

Состав

основной

number

Номер

12

status

Статус

нападающий

Таблица 1.3 - Тренеры

Атрибут

Смысл

Пример

staff

Состав

основной

status

Статус

главный тренер

Таблица 1.4 - Помещение

Атрибут

Смысл

Пример

num_p

Номер помещения

15

square

Площадь

123

naznachenie

Назначение

столовая

Таблица 1.5 - Комната

Атрибут

Смысл

Пример

num_p

Номер помещения

15

room

Номер комнаты

3

Таблица 1.6 - Спортивный зал

Атрибут

Смысл

Пример

num_p

Номер помещения

15

type_zal

Тип зала

Тренажерный зал

sp

Серия паспорта

1226

np

Номер паспорта

456987

Таблица 1.7 - Поступление объектов

Атрибут

Смысл

Пример

code_obj

Код объекта

15

date

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

04.24.2008

balance

Балансовая стоимость

450

Таблица 1.8 - Спортивный инвентарь

Атрибут

Смысл

Пример

code_obj

Код объекта

15

firm_inv

Фирма-изготовитель

Mizuno

model_inv

Модель

GIM12

type_inv

Тип

Мяч

Таблица 1.9 - Техника

Атрибут

Смысл

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

code_obj

Код объекта

15

firm_tec

Фирма-изготовитель

Samsung

model_tec

Модель

SG-125

type_tec

Тип

Телевизор

Таблица 1.10 - Мебель

Атрибут

Смысл

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

code_obj

Код объекта

115

firm_meb

Фирма-изготовитель

"Мир мебели"

dlina

Длина

125

width

Ширина

50

height

Высота

70

type_meb

Тип

Шкаф

Таблица 1.11 - Размещение спортивного инвентаря по залам

Атрибут

Смысл

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

Inv_number

Инвентарный номер

123654

date

Дата

05.15.2010

num_p

Номер зала

56

Таблица 1.12 - Расселение людей по комнатам

Атрибут

Смысл

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

Inv_number

Номер помещения

123654

sp

Паспорт

1236566002

Таблица 1.13 - Инвентарные номера спортивного инвентаря

Атрибут

Смысл

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

Inv_number

Инвентарный номер

123654

code_obj

Код объекта

165

Таблица 1.14 - Инвентарные номера техники

Атрибут

Смысл

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

Inv_number

Инвентарный номер

333488

code_obj

Код объекта

456

Таблица 1.15 - Инвентарные номера мебели

Атрибут

Смысл

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

Inv_number

Инвентарный номер

5699888

code_obj

Код объекта

158

Таблица 1.16 - Списанный спортивный инвентарь

Атрибут

Смысл

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

Inv_number

Инвентарный номер

123654

date

Дата списания

11.10.2007

Таблица 1.17 - Списанная техника

Атрибут

Смысл

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

Inv_number

Инвентарный номер

123654

date

Дата списания

04.05.2007

Таблица 1.18 - Списанная мебель

Атрибут

Смысл

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

Inv_number

Инвентарный номер

123654

date

Дата списания

12.03.2004

Таблица 1.19 - Размещение мебели по помещениям

Атрибут

Смысл

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

Inv_number

Инвентарный номер

123654

date

Дата

05.15.2010

num_p

Номер помещения

56

Таблица 1.20 - Размещение техники по помещениям

Атрибут

Смысл

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

Inv_number

Инвентарный номер

123654

date

Дата

05.15.2010

num_p

Номер помещения

56

Таблица 1.21 - Списание

Атрибут

Смысл

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

id

ID списания

123654

date

Дата списания

04.05.2007

1.2.2 Первичные и альтернативные ключи

- Человек первичный ключ номер и серия паспорта

- Игрок первичный ключ номер и серия паспорта

- Тренер первичный ключ номер и серия паспорта

- Помещение первичный ключ номер

- Зал первичный ключ номер

- Комната первичный ключ номер

- Объект превичный ключ код объекта

- Мебель первичный ключ ID

- Техника первичный ключ ID

- Спортивный инвентарь первичный ключ ID

- Инвентаризация объекта первичный ключ IDсписания

- Инвентаризация спортинвентаря первичный ключ IDсписания

- Инвентаризация техники первичный ключ IDсписания

- Инвентаризация мебели первичный ключ IDсписания

- Списание спортинвентаря первичный ключ ID

- Списание техники первичный ключ ID

- Списание мебели первичный ключ ID

- Расселение людей по комнатам первичный ключ индекс расселения

- Распределение инвентаря по залам первичный ключ ID распределения

- Распределение техники по помещениям первичный ключ ID распределения

- Распределение мебели по помещениям первичный ключ ID распределения

1.2.3 Диаграмма сущность - связь для предметной области

Диаграмма сущность - связь для предметной области представлена на рисунке 1.1

Рисунок 1.1

2. Модель предметной области в виде системы функциональных зависимостей

2.1 Функциональные зависимости для отношений предметной области

2.1.1 Ключевые функциональные зависимости

Ключевая функциональная зависимость для отношения PERSON:

passport-> fam, im, otch, pol, dateborn, datevidachi, kemvidan, country, city, street, numstreet, numflat, dolgnost

Ключевая функциональная зависимость для отношения PLAYER:

passport -> staff_pl, number, status_pl

Ключевая функциональная зависимость для отношения COACH:

passport ->staff_c, status_c

Ключевая функциональная зависимость для отношения POPULATE

pop_index ->passport, num_p

Ключевая функциональная зависимость для отношения POMESHENIE:

num_p -> square, naznachenie

Ключевая функциональная зависимость для отношения ZAL:

num_p ->num_zal, type_zal

Ключевая функциональная зависимость для отношения ROOM:

num_p ->num_room

Ключевая функциональная зависимость для отношения TECHNO_IN_POM:

tec_in -> date_tec, num_p, inv_number_tec

Ключевая функциональная зависимость для отношения MEB_IN_POM:

meb_in -> date_meb, num_p, inv_number_meb

Ключевая функциональная зависимость для отношения INV_IN_ZAL:

inv_in_id -> date_inv, num_p, inv_number_inv

Ключевая функциональная зависимость для отношения INVENUM_INV:

inv_number_inv->code_obj

Ключевая функциональная зависимость для отношения INVENUM_TEC:

inv_number_tec ->code_obj

Ключевая функциональная зависимость для отношения INVENUM_MEB:

inv_number_meb ->code_obj

Ключевая функциональная зависимость для отношения ARRIVAL_OBJECT:

code_obj ->date, price

Ключевая функциональная зависимость для отношения INVENTAR:

code_obj -> firm_inv, model_inv

Ключевая функциональная зависимость для отношения TECHNO:

code_obj -> firm_tec, model_tec

Ключевая функциональная зависимость для отношения MEBEL:

code_obj -> firm_meb, model_meb, dlina, width, height

Ключевая функциональная зависимость для отношения SPISANIE:

id_spis ->data

Ключевая функциональная зависимость для отношения OUT_INVENTAR:

id_spis ->inv_number_inv ,reason_inv

Ключевая функциональная зависимость для отношения OUT_TECHNO:

id_spis -> inv_number_tec , reason_tec

Ключевая функциональная зависимость для отношения OUT_MEBEL:

id_spis -> inv_number_meb , reason_meb

2.1.2 Не ключевые функциональные зависимости

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

Fam, Im, Otch, pol, dateborn, datevidachi, kemvidan, country, city, street, numstreet, numflat, dolgnost ->passport

Один человек не может одновременно жить в двух комнатах.

num_room ->passport

Номер помещения однозначно определяет номер комнаты.

num_p ->num_room

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

num_zal ->inv_number_inv

Единица техники не может одновременно находиться в нескольких помещениях.

num_р ->inv_number_tec

Единица мебели не может одновременно находиться в нескольких помещениях.

num_р ->inv_number_meb

2.1.3 Функциональные зависимости для сохранения иерархии

Несуществующий человек не может быть тренером.

number ->passport, fam, im, otch, pol, dateborn, datevidachi, kemvidan, country, city, street, numstreet, numflat, dolgnost

Несуществующий человек не может быть футболистом.

status_c -> passport,fam, im, otch, pol, dateborn, datevidachi, kemvidan, country, city, street, numstreet, numflat, dolgnost

2.1.4 Функциональные зависимости для устранения потери информации при соединении

Функциональная зависимость для устранения потери информации при соединении для отношения PERSON:

passport, fam, im, otch, pol, dateborn, datevidachi, kemvidan, country, city, street, numstreet, numflat, dolgnost ->Person

Функциональная зависимость для устранения потери информации при соединении для отношения PLAYER:

passport,staff_pl, number, status_pl ->Player

Функциональная зависимость для устранения потери информации при соединении для отношения COACH:

passport,staff_c, status_c ->Coach

Функциональная зависимость для устранения потери информации при соединении для отношения POPULATE

pop_index,passport, num_p ->populate

Функциональная зависимость для устранения потери информации при соединении для отношения POMESHENIE:

num_p ,square, naznachenie ->pomeshenie

Функциональная зависимость для устранения потери информации при соединении для отношения ZAL:

num_p,num_zal, type_zal ->zal

Функциональная зависимость для устранения потери информации при соединении для отношения ROOM:

num_p ,num_room ->room

Функциональная зависимость для устранения потери информации при соединении для отношения TECHNO_IN_POM:

tec_in ,date_tec, num_p, inv_number_pom ->techno_in_pom

Функциональная зависимость для устранения потери информации при соединении для отношения MEB_IN_POM:

meb_in ,date_meb, num_p, inv_number_meb ->meb_in_pom

Функциональная зависимость для устранения потери информации при соединении для отношения INV_IN_ZAL:

inv_in_id ,date_inv, num_p, inv_number_inv ->inv_in_zal

Функциональная зависимость для устранения потери информации при соединении для отношения INVENUM_INV:

inv_number_inv ,code_obj ->invenum_inv

Функциональная зависимость для устранения потери информации при соединении для отношения INVENUM_TEC:

inv_number_tec, code_obj ->invenum_tec

Функциональная зависимость для устранения потери информации при соединении для отношения INVENUM_MEB:

inv_number_meb, code_obj ->invenum_meb

Функциональная зависимость для устранения потери информации при соединении для отношения ARRIVAL_OBJECT:

code_obj ,kol, date, price ->arrival_object

Функциональная зависимость для устранения потери информации при соединении для отношения INVENTAR:

code_obj ,firm_inv, model_inv ->inventar

Функциональная зависимость для устранения потери информации при соединении для отношения TECHNO:

code_obj ,firm_tec, model_tec ->techno

Функциональная зависимость для устранения потери информации при соединении для отношения MEBEL:

code_obj,firm_meb, dlina, width, height, color -> mebel

Функциональная зависимость для устранения потери информации при соединении для отношения SPISANIE:

id_spis , data ->spisanie

Функциональная зависимость для устранения потери информации при соединении для отношения OUT_INVENTAR:

id_spis ,inv_number_inv , reason_inv ->out_inventar

Функциональная зависимость для устранения потери информации при соединении для отношения OUT_TECHNO:

id_spis ,inv_number_tec , reason_tec ->out_techno

Функциональная зависимость для устранения потери информации при соединении для отношения OUT_MEBEL:

id_spis ,inv_number_meb , reason_meb ->out_mebel

2.1.5 Исходное множество функциональных зависимостей

passprot ->fam, im, otch, pol, dateborn, datevidachi, kemvidan, country, city, street, numstreet, numflat, dolgnost

passport -> staff_pl, number, status_pl

passport -> staff_c, number_c

pop_index -> person_id, num_p

num_p -> square, naznachenie

num_p -> num_zal, type_zal

num_p -> num_room

tec_in -> date_tec, num_p, inv_number_pom

meb_in -> date_meb, num_p, inv_number_meb

inv_in_id -> date_inv, num_p, inv_number_inv

inv_number_inv -> code_obj

inv_number_tec -> code_obj

inv_number_meb -> code_obj

code_obj -> date, price

code_obj -> firm_inv, model_inv

code_obj -> firm_tec, model_tec

code_obj -> firm_meb, model_meb, dlina, width, height

id_spis -> data

id_spis -> inv_number_inv, reason_inv

id_spis -> inv_number_tec, reason_tec

id_spis -> inv_number_meb, reason_meb

Fam, Im, Otch, pol, dateborn, datevidachi, kemvidan, country, city, street, numstreet, numflat, dolgnost -> passport

num_room -> passport

num_zal -> inv_number_inv

num_р -> inv_number_tec

num_р -> inv_number_meb

number -> passport, fam, im, otch, pol, dateborn, datevidachi, kemvidan, country, city, street, numstreet, numflat, dolgnost

status_c -> passport, fam, im, otch, pol, dateborn, datevidachi, kemvidan, country, city, street, numstreet, numflat, dolgnost

passport, fam, im, otch, pol, dateborn, datevidachi, kemvidan, country, city, street, numstreet, numflat, dolgnost -> Person

passport ,staff_pl, number, status_pl -> player

passport , staff_c, status_c -> coach

pop_index , passport, num_p -> populate

num_p , square, naznachenie -> pomeshenie

num_p, num_zal, type_zal -> zal

num_p ,num_room -> room

tec_in , date_tec, num_p, inv_number_pom -> techno_in_pom

meb_in , date_meb, num_p, inv_number_meb -> meb_in_pom

inv_in_id ,date_inv, num_p, inv_number_inv -> inv_in_zal

inv_number_inv , code_obj -> invenum_inv

inv_number_tec, code_obj -> invenum_tec

inv_number_meb, code_obj -> invenum_meb

code_obj , kol, date, price -> arrival_object

code_obj , firm_inv, model_inv -> inventar

code_obj , firm_tec, model_tec -> techno

code_obj , firm_meb, dlina, width, height, color -> mebel

id_spis , data -> spisanie

id_spis , inv_number_inv , reason_inv -> out_inventar

id_spis , inv_number_tec , reason_tec -> out_techno

id_spis , inv_number_meb , reason_meb -> out_mebel

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

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

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

g:

passport -> fam, im, otch, pol, dateborn, datevidachi, kemvidan, country,

city, street, numstreet, numflat, dolgnost

passport -> staff_pl, number, status_pl

passport -> staff_c, status_c

pop_index -> person_id, num_p

num_p -> square, naznachenie

num_p -> num_zal, type_zal

num_p -> num_room

tec_in -> date_tec, num_p, inv_number_tec

meb_in -> date_meb, num_p, inv_number_meb

inv_in_id -> date_inv, num_p, inv_number_inv

inv_number_inv -> code_obj

inv_number_tec -> code_obj

inv_number_meb -> code_obj

code_obj -> date, price

code_obj -> firm_inv, model_inv

code_obj -> firm_tec, model_tec

code_obj -> firm_meb, model_meb, dlina, width, height

id_spis -> data

id_spis -> inv_number_inv, reason_inv

id_spis -> inv_number_tec, reason_tec

id_spis -> inv_number_meb, reason_meb

Fam, Im, Otch, pol, dateborn, datevidachi, kemvidan, country, city,

street, numstreet, numflat, dolgnost -> passport

num_room -> passport

num_zal -> inv_number_inv

num_p -> inv_number_tec

num_p -> inv_number_meb

passport, fam, im, otch, pol, dateborn, datevidachi, kemvidan, country,

city, street, numstreet, numflat, dolgnost -> person

passport, staff_pl, number, status_pl -> player

pop_index, person_id, num_p -> populate

num_p, square, naznachenie -> pomeshenie

num_p, num_zal, type_zal -> zal

num_p, num_room -> room

tec_in, date_tec, num_p, inv_number_tec -> techno_in_pom

meb_in, date_meb, num_p, inv_number_meb -> meb_in_pom

inv_in_id, date_inv, num_p, inv_number_inv -> inv_in_zal

inv_number_inv, code_obj -> invenum_inv

inv_number_tec, code_obj -> invenum_tec

inv_number_meb, code_obj -> invenum_meb

code_obj, date, price -> arrival_object

code_obj, firm_inv, model_inv -> inventar

code_obj, firm_tec, model_tec -> techno

firm_meb, model_meb, dlina, width, height -> mebel

id_spis, data -> spisanie

id_spis, inv_number_inv, reason_inv -> out_inventar

id_spis, inv_number_tec, reason_tec -> out_techno

id_spis, inv_number_meb, reason_meb -> out_mebel

number -> passport, fam, im, otch, pol, dateborn, datevidachi, kemvidan,

country, city, street, numstreet, numflat, dolgnost

status_c -> passport, fam, im, otch, pol, dateborn, datevidachi,

kemvidan, country, city, street, numstreet, numflat, dolgnost

passport, staff_c, status_c -> coach

1. f=g \ passport -> fam, im, otch, pol, dateborn, datevidachi, kemvidan,

country, city, street, numstreet, numflat, dolgnost

Проверяем: f |= passport ->fam, im, otch, pol, dateborn, datevidachi,

kemvidan, country, city, street, numstreet, numflat, dolgnost

[passport]+f = passport, staff_pl, number, status_pl, staff_c, status_c,

player, fam, im, otch, pol, dateborn, datevidachi, kemvidan, country, city,

street, numstreet, numflat, dolgnost, person, coach

Да => g=f

g:

passport -> staff_pl, number, status_pl

passport -> staff_c, status_c

pop_index -> person_id, num_p

num_p -> square, naznachenie

num_p -> num_zal, type_zal

num_p -> num_room

tec_in -> date_tec, num_p, inv_number_tec

meb_in -> date_meb, num_p, inv_number_meb

inv_in_id -> date_inv, num_p, inv_number_inv

inv_number_inv -> code_obj

inv_number_tec -> code_obj

inv_number_meb -> code_obj

code_obj -> date, price

code_obj -> firm_inv, model_inv

code_obj -> firm_tec, model_tec

code_obj -> firm_meb, model_meb, dlina, width, height

id_spis -> data

id_spis -> inv_number_inv, reason_inv

id_spis -> inv_number_tec, reason_tec

id_spis -> inv_number_meb, reason_meb

Fam, Im, Otch, pol, dateborn, datevidachi, kemvidan, country, city,

street, numstreet, numflat, dolgnost -> passport

num_room -> passport

num_zal -> inv_number_inv

num_p -> inv_number_tec

num_p -> inv_number_meb

passport, fam, im, otch, pol, dateborn, datevidachi, kemvidan, country,

city, street, numstreet, numflat, dolgnost -> person

passport, staff_pl, number, status_pl -> player

pop_index, person_id, num_p -> populate

num_p, square, naznachenie -> pomeshenie

num_p, num_zal, type_zal -> zal

num_p, num_room -> room

tec_in, date_tec, num_p, inv_number_tec -> techno_in_pom

meb_in, date_meb, num_p, inv_number_meb -> meb_in_pom

inv_in_id, date_inv, num_p, inv_number_inv -> inv_in_zal

inv_number_inv, code_obj -> invenum_inv

inv_number_tec, code_obj -> invenum_tec

inv_number_meb, code_obj -> invenum_meb

code_obj, date, price -> arrival_object

code_obj, firm_inv, model_inv -> inventar

code_obj, firm_tec, model_tec -> techno

firm_meb, model_meb, dlina, width, height -> mebel

id_spis, data -> spisanie

id_spis, inv_number_inv, reason_inv -> out_inventar

id_spis, inv_number_tec, reason_tec -> out_techno

id_spis, inv_number_meb, reason_meb -> out_mebel

number -> passport, fam, im, otch, pol, dateborn, datevidachi, kemvidan,

country, city, street, numstreet, numflat, dolgnost

status_c -> passport, fam, im, otch, pol, dateborn, datevidachi,

kemvidan, country, city, street, numstreet, numflat, dolgnost

passport, staff_c, status_c -> coach

2. f=g \ passport -> staff_pl, number, status_pl

Проверяем: f |= passport -> staff_pl, number, status_pl

[passport]+f = passport, staff_c, status_c, fam, im, otch, pol, dateborn,

datevidachi, kemvidan, country, city, street, numstreet, numflat, dolgnost,

person, coach

Нет => Множество ФЗ не изменяется

3. f=g \ passport -> staff_c, status_c

Проверяем: f |= passport -> staff_c, status_c

[passport]+f = passport, staff_pl, number, status_pl, player, fam, im, otch,

pol, dateborn, datevidachi, kemvidan, country, city, street, numstreet,

numflat, dolgnost, person

Нет => Множество ФЗ не изменяется

4. f=g \ pop_index -> person_id, num_p

Проверяем: f |= pop_index -> person_id, num_p

[pop_index]+f = pop_index

Нет => Множество ФЗ не изменяется

5. f=g \ num_p -> square, naznachenie

Проверяем: f |= num_p -> square, naznachenie

[num_p]+f = num_p, num_zal, type_zal, num_room, passport, staff_pl,

number, status_pl, staff_c, status_c, inv_number_inv, code_obj, date,

price, firm_inv, model_inv, firm_tec, model_tec, firm_meb, model_meb,

dlina, width, height, inv_number_tec, inv_number_meb, player, zal, room,

invenum_inv, invenum_tec, invenum_meb, arrival_object, inventar,

techno, mebel, fam, im, otch, pol, dateborn, datevidachi, kemvidan,

country, city, street, numstreet, numflat, dolgnost, person, coach

Нет => Множество ФЗ не изменяется

6. f=g \ num_p -> num_zal, type_zal

Проверяем: f |= num_p -> num_zal, type_zal

[num_p]+f = num_p, square, naznachenie, num_room, passport, staff_pl,

number, status_pl, staff_c, status_c, inv_number_tec, code_obj, date,

price, firm_inv, model_inv, firm_tec, model_tec, firm_meb, model_meb,

dlina, width, height, inv_number_meb, player, pomeshenie, room,

invenum_tec, invenum_meb, arrival_object, inventar, techno, mebel, fam,

im, otch, pol, dateborn, datevidachi, kemvidan, country, city, street,

numstreet, numflat, dolgnost, person, coach

Нет => Множество ФЗ не изменяется

7. f=g \ num_p -> num_room

Проверяем: f |= num_p -> num_room

[num_p]+f = num_p, square, naznachenie, num_zal, type_zal,

inv_number_inv, code_obj, date, price, firm_inv, model_inv, firm_tec,

model_tec, firm_meb, model_meb, dlina, width, height, inv_number_tec,

inv_number_meb, pomeshenie, zal, invenum_inv, invenum_tec,

invenum_meb, arrival_object, inventar, techno, mebel

Нет => Множество ФЗ не изменяется

8. f=g \ tec_in -> date_tec, num_p, inv_number_tec

Проверяем: f |= tec_in -> date_tec, num_p, inv_number_tec

[tec_in]+f = tec_in

Нет => Множество ФЗ не изменяется

9. f=g \ meb_in -> date_meb, num_p, inv_number_meb

Проверяем: f |= meb_in -> date_meb, num_p, inv_number_meb

[meb_in]+f = meb_in

Нет => Множество ФЗ не изменяется

10. f=g \ inv_in_id -> date_inv, num_p, inv_number_inv

Проверяем: f |= inv_in_id -> date_inv, num_p, inv_number_inv

[inv_in_id]+f = inv_in_id

Нет => Множество ФЗ не изменяется

11. f=g \ inv_number_inv -> code_obj

Проверяем: f |= inv_number_inv -> code_obj

[inv_number_inv]+f = inv_number_inv

Нет => Множество ФЗ не изменяется

12. f=g \ inv_number_tec -> code_obj

Проверяем: f |= inv_number_tec -> code_obj

[inv_number_tec]+f = inv_number_tec

Нет => Множество ФЗ не изменяется

\ inv_number_meb -> code_obj

Проверяем: f |= inv_number_meb -> code_obj

[inv_number_meb]+f = inv_number_meb

Нет => Множество ФЗ не изменяется

14. f=g \ code_obj -> date, price

Проверяем: f |= code_obj -> date, price

[code_obj]+f = code_obj, firm_inv, model_inv, firm_tec, model_tec,

firm_meb, model_meb, dlina, width, height, inventar, techno, mebel

Нет => Множество ФЗ не изменяется

15. f=g \ code_obj -> firm_inv, model_inv

Проверяем: f |= code_obj -> firm_inv, model_inv

[code_obj]+f = code_obj, date, price, firm_tec, model_tec, firm_meb,

model_meb, dlina, width, height, arrival_object, techno, mebel

Нет => Множество ФЗ не изменяется

16. f=g \ code_obj -> firm_tec, model_tec

Проверяем: f |= code_obj -> firm_tec, model_tec

[code_obj]+f = code_obj, date, price, firm_inv, model_inv, firm_meb,

model_meb, dlina, width, height, arrival_object, inventar, mebel

Нет => Множество ФЗ не изменяется

17. f=g \ code_obj -> firm_meb, model_meb, dlina, width, height

Проверяем: f |= code_obj -> firm_meb, model_meb, dlina, width, height

[code_obj]+f = code_obj, date, price, firm_inv, model_inv, firm_tec,

model_tec, arrival_object, inventar, techno

Нет => Множество ФЗ не изменяется

18. f=g \ id_spis -> data

Проверяем: f |= id_spis -> data

[id_spis]+f = id_spis, inv_number_inv, reason_inv, code_obj, date, price,

firm_inv, model_inv, firm_tec, model_tec, firm_meb, model_meb, dlina,

width, height, inv_number_tec, reason_tec, inv_number_meb,

reason_meb, invenum_inv, invenum_tec, invenum_meb, arrival_object,

inventar, techno, mebel, out_inventar, out_techno, out_mebel

Нет => Множество ФЗ не изменяется

19. f=g \ id_spis -> inv_number_inv, reason_inv

Проверяем: f |= id_spis -> inv_number_inv, reason_inv

[id_spis]+f = id_spis, data, inv_number_tec, reason_tec, code_obj, date,

price, firm_inv, model_inv, firm_tec, model_tec, firm_meb, model_meb,

dlina, width, height, inv_number_meb, reason_meb, invenum_tec,

invenum_meb, arrival_object, inventar, techno, mebel, spisanie,

out_techno, out_mebel

Нет => Множество ФЗ не изменяется

20. f=g \ id_spis -> inv_number_tec, reason_tec

Проверяем: f |= id_spis -> inv_number_tec, reason_tec

[id_spis]+f = id_spis, data, inv_number_inv, reason_inv, code_obj, date,

price, firm_inv, model_inv, firm_tec, model_tec, firm_meb, model_meb,

dlina, width, height, inv_number_meb, reason_meb, invenum_inv,

invenum_meb, arrival_object, inventar, techno, mebel, spisanie,

out_inventar, out_mebel

Нет => Множество ФЗ не изменяется

21. f=g \ id_spis -> inv_number_meb, reason_meb

Проверяем: f |= id_spis -> inv_number_meb, reason_meb

[id_spis]+f = id_spis, data, inv_number_inv, reason_inv, code_obj, date,

price, firm_inv, model_inv, firm_tec, model_tec, firm_meb, model_meb,

dlina, width, height, inv_number_tec, reason_tec, invenum_inv,

invenum_tec, arrival_object, inventar, techno, mebel, spisanie,

out_inventar, out_techno

Нет => Множество ФЗ не изменяется

22. f=g \ Fam, Im, Otch, pol, dateborn, datevidachi, kemvidan, country,

city, street, numstreet, numflat, dolgnost -> passport

Проверяем: f |= Fam, Im, Otch, pol, dateborn, datevidachi, kemvidan,

country, city, street, numstreet, numflat, dolgnost -> passport

[Fam, Im, Otch, pol, dateborn, datevidachi, kemvidan, country, city, street,

numstreet, numflat, dolgnost]+f = Fam, Im, Otch, pol, dateborn,

datevidachi, kemvidan, country, city, street, numstreet, numflat, dolgnost

Нет => Множество ФЗ не изменяется

23. f=g \ num_room -> passport

Проверяем: f |= num_room -> passport

[num_room]+f = num_room

Нет => Множество ФЗ не изменяется

24. f=g \ num_zal -> inv_number_inv

Проверяем: f |= num_zal -> inv_number_inv

[num_zal]+f = num_zal

Нет => Множество ФЗ не изменяется

25. f=g \ num_p -> inv_number_tec

Проверяем: f |= num_p -> inv_number_tec

[num_p]+f = num_p, square, naznachenie, num_zal, type_zal, num_room,

passport, staff_pl, number, status_pl, staff_c, status_c, inv_number_inv,

code_obj, date, price, firm_inv, model_inv, firm_tec, model_tec, firm_meb,

model_meb, dlina, width, height, inv_number_meb, player, pomeshenie,

zal, room, invenum_inv, invenum_meb, arrival_object, inventar, techno,

mebel, fam, im, otch, pol, dateborn, datevidachi, kemvidan, country, city,

street, numstreet, numflat, dolgnost, person, coach

Нет => Множество ФЗ не изменяется

26. f=g \ num_p -> inv_number_meb

Проверяем: f |= num_p -> inv_number_meb

[num_p]+f = num_p, square, naznachenie, num_zal, type_zal, num_room,

passport, staff_pl, number, status_pl, staff_c, status_c, inv_number_inv,

code_obj, date, price, firm_inv, model_inv, firm_tec, model_tec, firm_meb,

model_meb, dlina, width, height, inv_number_tec, player, pomeshenie, zal,

room, invenum_inv, invenum_tec, arrival_object, inventar, techno, mebel,

fam, im, otch, pol, dateborn, datevidachi, kemvidan, country, city, street,

numstreet, numflat, dolgnost, person, coach

Нет => Множество ФЗ не изменяется

27. f=g \ passport, fam, im, otch, pol, dateborn, datevidachi, kemvidan,

country, city, street, numstreet, numflat, dolgnost -> person

Проверяем: f |= passport, fam, im, otch, pol, dateborn, datevidachi,

kemvidan, country, city, street, numstreet, numflat, dolgnost -> person

[passport, fam, im, otch, pol, dateborn, datevidachi, kemvidan, country,

city, street, numstreet, numflat, dolgnost]+f = passport, fam, im, otch, pol,

dateborn, datevidachi, kemvidan, country, city, street, numstreet, numflat,

dolgnost, staff_pl, number, status_pl, staff_c, status_c, player, coach

Нет => Множество ФЗ не изменяется

28. f=g \ passport, staff_pl, number, status_pl -> player

Проверяем: f |= passport, staff_pl, number, status_pl -> player

[passport, staff_pl, number, status_pl]+f = passport, staff_pl, number,

status_pl, staff_c, status_c, fam, im, otch, pol, dateborn, datevidachi,

kemvidan, country, city, street, numstreet, numflat, dolgnost, person, coach

Нет => Множество ФЗ не изменяется

29. f=g \ pop_index, person_id, num_p -> populate

Проверяем: f |= pop_index, person_id, num_p -> populate

[pop_index, person_id, num_p]+f = pop_index, person_id, num_p, square,

naznachenie, num_zal, type_zal, num_room, passport, staff_pl, number,

status_pl, staff_c, status_c, inv_number_inv, code_obj, date, price,

firm_inv, model_inv, firm_tec, model_tec, firm_meb, model_meb, dlina,

width, height, inv_number_tec, inv_number_meb, player, pomeshenie, zal,

room, invenum_inv, invenum_tec, invenum_meb, arrival_object, inventar,

techno, mebel, fam, im, otch, pol, dateborn, datevidachi, kemvidan,

country, city, street, numstreet, numflat, dolgnost, person, coach

Нет => Множество ФЗ не изменяется

30. f=g \ num_p, square, naznachenie -> pomeshenie

Проверяем: f |= num_p, square, naznachenie -> pomeshenie

[num_p, square, naznachenie]+f = num_p, square, naznachenie, num_zal,

type_zal, num_room, passport, staff_pl, number, status_pl, staff_c,

status_c, inv_number_inv, code_obj, date, price, firm_inv, model_inv,

firm_tec, model_tec, firm_meb, model_meb, dlina, width, height,

inv_number_tec, inv_number_meb, player, zal, room, invenum_inv,

invenum_tec, invenum_meb, arrival_object, inventar, techno, mebel, fam,

im, otch, pol, dateborn, datevidachi, kemvidan, country, city, street,

numstreet, numflat, dolgnost, person, coach

Нет => Множество ФЗ не изменяется

31. f=g \ num_p, num_zal, type_zal -> zal

Проверяем: f |= num_p, num_zal, type_zal -> zal

[num_p, num_zal, type_zal]+f = num_p, num_zal, type_zal, square,

naznachenie, num_room, passport, staff_pl, number, status_pl, staff_c,

status_c, inv_number_inv, code_obj, date, price, firm_inv, model_inv,

firm_tec, model_tec, firm_meb, model_meb, dlina, width, height,

inv_number_tec, inv_number_meb, player, pomeshenie, room,

invenum_inv, invenum_tec, invenum_meb, arrival_object, inventar,

techno, mebel, fam, im, otch, pol, dateborn, datevidachi, kemvidan,

country, city, street, numstreet, numflat, dolgnost, person, coach

Нет => Множество ФЗ не изменяется

32. f=g \ num_p, num_room -> room

Проверяем: f |= num_p, num_room -> room

[num_p, num_room]+f = num_p, num_room, square, naznachenie,

num_zal, type_zal, passport, staff_pl, number, status_pl, staff_c, status_c,

inv_number_inv, code_obj, date, price, firm_inv, model_inv, firm_tec,

model_tec, firm_meb, model_meb, dlina, width, height, inv_number_tec,

inv_number_meb, player, pomeshenie, zal, invenum_inv, invenum_tec,

invenum_meb, arrival_object, inventar, techno, mebel, fam, im, otch, pol,

dateborn, datevidachi, kemvidan, country, city, street, numstreet, numflat,

dolgnost, person, coach

Нет => Множество ФЗ не изменяется

33. f=g \ tec_in, date_tec, num_p, inv_number_tec -> techno_in_pom

Проверяем: f |= tec_in, date_tec, num_p, inv_number_tec ->

techno_in_pom

[tec_in, date_tec, num_p, inv_number_tec]+f = tec_in, date_tec, num_p,

inv_number_tec, square, naznachenie, num_zal, type_zal, num_room,

code_obj, date, price, firm_inv, model_inv, firm_tec, model_tec, firm_meb,

model_meb, dlina, width, height, passport, staff_pl, number, status_pl,

staff_c, status_c, inv_number_inv, inv_number_meb, player, pomeshenie,

zal, room, invenum_inv, invenum_tec, invenum_meb, arrival_object,

inventar, techno, mebel, fam, im, otch, pol, dateborn, datevidachi,

kemvidan, country, city, street, numstreet, numflat, dolgnost, person, coach

Нет => Множество ФЗ не изменяется

34. f=g \ meb_in, date_meb, num_p, inv_number_meb -> meb_in_pom

Проверяем: f |= meb_in, date_meb, num_p, inv_number_meb ->

meb_in_pom

[meb_in, date_meb, num_p, inv_number_meb]+f = meb_in, date_meb,

num_p, inv_number_meb, square, naznachenie, num_zal, type_zal,

num_room, code_obj, date, price, firm_inv, model_inv, firm_tec, model_tec,

firm_meb, model_meb, dlina, width, height, passport, staff_pl, number,

status_pl, staff_c, status_c, inv_number_inv, inv_number_tec, player,

pomeshenie, zal, room, invenum_inv, invenum_tec, invenum_meb,

arrival_object, inventar, techno, mebel, fam, im, otch, pol, dateborn,

datevidachi, kemvidan, country, city, street, numstreet, numflat, dolgnost,

person, coach

Нет => Множество ФЗ не изменяется

35. f=g \ inv_in_id, date_inv, num_p, inv_number_inv -> inv_in_zal

Проверяем: f |= inv_in_id, date_inv, num_p, inv_number_inv -> inv_in_zal

[inv_in_id, date_inv, num_p, inv_number_inv]+f = inv_in_id, date_inv,

num_p, inv_number_inv, square, naznachenie, num_zal, type_zal,

num_room, code_obj, date, price, firm_inv, model_inv, firm_tec, model_tec,

firm_meb, model_meb, dlina, width, height, passport, staff_pl, number,

status_pl, staff_c, status_c, inv_number_tec, inv_number_meb, player,

pomeshenie, zal, room, invenum_inv, invenum_tec, invenum_meb,

arrival_object, inventar, techno, mebel, fam, im, otch, pol, dateborn,

datevidachi, kemvidan, country, city, street, numstreet, numflat, dolgnost,

person, coach

Нет => Множество ФЗ не изменяется

36. f=g \ inv_number_inv, code_obj -> invenum_inv

Проверяем: f |= inv_number_inv, code_obj -> invenum_inv

[inv_number_inv, code_obj]+f = inv_number_inv, code_obj, date, price,

firm_inv, model_inv, firm_tec, model_tec, firm_meb, model_meb, dlina,

width, height, arrival_object, inventar, techno, mebel

Нет => Множество ФЗ не изменяется

37. f=g \ inv_number_tec, code_obj -> invenum_tec

Проверяем: f |= inv_number_tec, code_obj -> invenum_tec

[inv_number_tec, code_obj]+f = inv_number_tec, code_obj, date, price,

firm_inv, model_inv, firm_tec, model_tec, firm_meb, model_meb, dlina,

width, height, arrival_object, inventar, techno, mebel

Нет => Множество ФЗ не изменяется

38. f=g \ inv_number_meb, code_obj -> invenum_meb

Проверяем: f |= inv_number_meb, code_obj -> invenum_meb

[inv_number_meb, code_obj]+f = inv_number_meb, code_obj, date, price,

firm_inv, model_inv, firm_tec, model_tec, firm_meb, model_meb, dlina,

width, height, arrival_object, inventar, techno, mebel

Нет => Множество ФЗ не изменяется

39. f=g \ code_obj, date, price -> arrival_object

Проверяем: f |= code_obj, date, price -> arrival_object

[code_obj, date, price]+f = code_obj, date, price, firm_inv, model_inv,

firm_tec, model_tec, firm_meb, model_meb, dlina, width, height, inventar,

techno, mebel

Нет => Множество ФЗ не изменяется

40. f=g \ code_obj, firm_inv, model_inv -> inventar

Проверяем: f |= code_obj, firm_inv, model_inv -> inventar

[code_obj, firm_inv, model_inv]+f = code_obj, firm_inv, model_inv, date,

price, firm_tec, model_tec, firm_meb, model_meb, dlina, width, height,

arrival_object, techno, mebel

Нет => Множество ФЗ не изменяется

41. f=g \ code_obj, firm_tec, model_tec -> techno

Проверяем: f |= code_obj, firm_tec, model_tec -> techno

[code_obj, firm_tec, model_tec]+f = code_obj, firm_tec, model_tec, date,

price, firm_inv, model_inv, firm_meb, model_meb, dlina, width, height,

arrival_object, inventar, mebel

Нет => Множество ФЗ не изменяется

42. f=g \ firm_meb, model_meb, dlina, width, height -> mebel

Проверяем: f |= firm_meb, model_meb, dlina, width, height -> mebel

[firm_meb, model_meb, dlina, width, height]+f = firm_meb, model_meb,

dlina, width, height

Нет => Множество ФЗ не изменяется

43. f=g \ id_spis, data -> spisanie

Проверяем: f |= id_spis, data -> spisanie

[id_spis, data]+f = id_spis, data, inv_number_inv, reason_inv, code_obj,

date, price, firm_inv, model_inv, firm_tec, model_tec, firm_meb,

model_meb, dlina, width, height, inv_number_tec, reason_tec,

inv_number_meb, reason_meb, invenum_inv, invenum_tec, invenum_meb,

arrival_object, inventar, techno, mebel, out_inventar, out_techno,

out_mebel

Нет => Множество ФЗ не изменяется

44. f=g \ id_spis, inv_number_inv, reason_inv -> out_inventar

Проверяем: f |= id_spis, inv_number_inv, reason_inv -> out_inventar

[id_spis, inv_number_inv, reason_inv]+f = id_spis, inv_number_inv,

reason_inv, code_obj, date, price, firm_inv, model_inv, firm_tec,

model_tec, firm_meb, model_meb, dlina, width, height, data,

inv_number_tec, reason_tec, inv_number_meb, reason_meb,

invenum_inv, invenum_tec, invenum_meb, arrival_object, inventar,

techno, mebel, spisanie, out_techno, out_mebel

Нет => Множество ФЗ не изменяется

45. f=g \ id_spis, inv_number_tec, reason_tec -> out_techno

Проверяем: f |= id_spis, inv_number_tec, reason_tec -> out_techno

[id_spis, inv_number_tec, reason_tec]+f = id_spis, inv_number_tec,

reason_tec, code_obj, date, price, firm_inv, model_inv, firm_tec,

model_tec, firm_meb, model_meb, dlina, width, height, data,

inv_number_inv, reason_inv, inv_number_meb, reason_meb, invenum_inv,

invenum_tec, invenum_meb, arrival_object, inventar, techno, mebel,

spisanie, out_inventar, out_mebel

Нет => Множество ФЗ не изменяется

46. f=g \ id_spis, inv_number_meb, reason_meb -> out_mebel

Проверяем: f |= id_spis, inv_number_meb, reason_meb -> out_mebel

[id_spis, inv_number_meb, reason_meb]+f = id_spis, inv_number_meb,

reason_meb, code_obj, date, price, firm_inv, model_inv, firm_tec,

model_tec, firm_meb, model_meb, dlina, width, height, data,

inv_number_inv, reason_inv, inv_number_tec, reason_tec, invenum_inv,

invenum_tec, invenum_meb, arrival_object, inventar, techno, mebel,

spisanie, out_inventar, out_techno

Нет => Множество ФЗ не изменяется

47. f=g \ number -> passport, fam, im, otch, pol, dateborn, datevidachi,

kemvidan, country, city, street, numstreet, numflat, dolgnost

Проверяем: f |= number -> passport, fam, im, otch, pol, dateborn,

datevidachi, kemvidan, country, city, street, numstreet, numflat, dolgnost

[number]+f = number

Нет => Множество ФЗ не изменяется

48. f=g \ status_c -> passport, fam, im, otch, pol, dateborn, datevidachi,

kemvidan, country, city, street, numstreet, numflat, dolgnost

Проверяем: f |= status_c -> passport, fam, im, otch, pol, dateborn,

datevidachi, kemvidan, country, city, street, numstreet, numflat, dolgnost

[status_c]+f = status_c

Нет => Множество ФЗ не изменяется

49. f=g \ passport, staff_c, status_c -> coach

Проверяем: f |= passport, staff_c, status_c -> coach

[passport, staff_c, status_c]+f = passport, staff_c, status_c, staff_pl,

number, status_pl, player, fam, im, otch, pol, dateborn, datevidachi,

kemvidan, country, city, street, numstreet, numflat, dolgnost, person

Нет => Множество ФЗ не изменяется

Неизбыточное покрытие

Результирующее множество:

passport -> staff_pl, number, status_pl

passport -> staff_c, status_c

pop_index -> person_id, num_p

num_p -> square, naznachenie

num_p -> num_zal, type_zal

num_p -> num_room

tec_in -> date_tec, num_p, inv_number_tec

meb_in -> date_meb, num_p, inv_number_meb

inv_in_id -> date_inv, num_p, inv_number_inv

inv_number_inv -> code_obj

inv_number_tec -> code_obj

inv_number_meb -> code_obj

code_obj -> date, price

code_obj -> firm_inv, model_inv

code_obj -> firm_tec, model_tec

code_obj -> firm_meb, model_meb, dlina, width, height

id_spis -> data

id_spis -> inv_number_inv, reason_inv

id_spis -> inv_number_tec, reason_tec

id_spis -> inv_number_meb, reason_meb

Fam, Im, Otch, pol, dateborn, datevidachi, kemvidan, country, city,

street, numstreet, numflat, dolgnost -> passport

num_room -> passport

num_zal -> inv_number_inv

num_p -> inv_number_tec

num_p -> inv_number_meb

passport, fam, im, otch, pol, dateborn, datevidachi, kemvidan, country,

city, street, numstreet, numflat, dolgnost -> person

passport, staff_pl, number, status_pl -> player

pop_index, person_id, num_p -> populate

num_p, square, naznachenie -> pomeshenie

num_p, num_zal, type_zal -> zal

num_p, num_room -> room

tec_in, date_tec, num_p, inv_number_tec -> techno_in_pom

meb_in, date_meb, num_p, inv_number_meb -> meb_in_pom

inv_in_id, date_inv, num_p, inv_number_inv -> inv_in_zal

inv_number_inv, code_obj -> invenum_inv

inv_number_tec, code_obj -> invenum_tec

inv_number_meb, code_obj -> invenum_meb

code_obj, date, price -> arrival_object

code_obj, firm_inv, model_inv -> inventar

code_obj, firm_tec, model_tec -> techno

firm_meb, model_meb, dlina, width, height -> mebel

id_spis, data -> spisanie

id_spis, inv_number_inv, reason_inv -> out_inventar

id_spis, inv_number_tec, reason_tec -> out_techno

id_spis, inv_number_meb, reason_meb -> out_mebel

number -> passport, fam, im, otch, pol, dateborn, datevidachi, kemvidan,

country, city, street, numstreet, numflat, dolgnost

status_c -> passport, fam, im, otch, pol, dateborn, datevidachi,

kemvidan, country, city, street, numstreet, numflat, dolgnost

passport, staff_c, status_c ->coach

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

Результирующее множество:

passport -> staff_pl, number, status_pl

passport -> staff_c, status_c

pop_index -> person_id, num_p

num_p -> square, naznachenie

num_p -> num_zal, type_zal

num_p -> num_room

tec_in -> date_tec, num_p, inv_number_tec

meb_in -> date_meb, num_p, inv_number_meb

inv_in_id -> date_inv, num_p, inv_number_inv

inv_number_inv -> code_obj

inv_number_tec -> code_obj

inv_number_meb -> code_obj

code_obj -> date, price

code_obj -> firm_inv, model_inv

code_obj -> firm_tec, model_tec

code_obj -> firm_meb, model_meb, dlina, width, height

id_spis -> data

id_spis -> inv_number_inv, reason_inv

id_spis -> inv_number_tec, reason_tec

id_spis -> inv_number_meb, reason_meb

Fam, Im, Otch, pol, dateborn, datevidachi, kemvidan, country, city, street, numstreet, numflat, dolgnost -> passport

num_room -> passport

num_zal -> inv_number_inv

num_p -> inv_number_tec

num_p -> inv_number_meb

passport -> person

number -> player

pop_index -> populate

num_p -> pomeshenie

num_p -> zal

num_p -> room

tec_in -> techno_in_pom

meb_in -> meb_in_pom

inv_in_id -> inv_in_zal

inv_number_inv -> invenum_inv

inv_number_tec -> invenum_tec

inv_number_meb -> invenum_meb

code_obj -> arrival_object

code_obj -> inventar

code_obj -> techno

firm_meb, model_meb, dlina, width, height -> mebel

id_spis -> spisanie

id_spis -> out_inventar

id_spis -> out_techno

id_spis -> out_mebel

number -> passport, fam, im, otch, pol, dateborn, datevidachi, kemvidan, country, city, street, numstreet, numflat, dolgnost

status_c -> passport, fam, im, otch, pol, dateborn, datevidachi, kemvidan, country, city, street, numstreet, numflat, dolgnost

status_c -> coach

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

Результирующеемножество:

passport -> staff_pl, number, status_pl

passport -> staff_c, status_c

pop_index -> person_id, num_p

num_p -> square, naznachenie

num_p -> num_zal, type_zal

num_p -> num_room

tec_in -> date_tec, num_p

meb_in -> date_meb, num_p

inv_in_id -> date_inv, num_p

inv_number_inv -> code_obj

inv_number_tec -> code_obj

inv_number_meb -> code_obj

code_obj -> date, price

code_obj -> firm_inv, model_inv

code_obj -> firm_tec, model_tec

code_obj -> firm_meb, model_meb, dlina, width, height

id_spis -> data

id_spis -> inv_number_inv, reason_inv

id_spis -> inv_number_tec, reason_tec

id_spis -> inv_number_meb, reason_meb

Fam, Im, Otch, pol, dateborn, datevidachi, kemvidan, country, city, street, numstreet, numflat, dolgnost -> passport

num_room -> passport

num_zal -> inv_number_inv

num_p -> inv_number_tec

num_p -> inv_number_meb

passport -> person

number -> player

pop_index -> populate

num_p -> pomeshenie

num_p -> zal

num_p -> room

tec_in -> techno_in_pom

meb_in -> meb_in_pom

inv_in_id -> inv_in_zal

inv_number_inv -> invenum_inv

inv_number_tec -> invenum_tec

inv_number_meb -> invenum_meb

code_obj -> arrival_object

code_obj -> inventar

code_obj -> techno

firm_meb, model_meb, dlina, width, height -> mebel

id_spis -> spisanie

id_spis -> out_inventar

id_spis -> out_techno

id_spis -> out_mebel

number -> passport

status_c -> passport, fam, im, otch, pol, dateborn, datevidachi, kemvidan, country, city, street, numstreet, numflat, dolgnost

status_c -> coach

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

4.1 Естественноехарактеристическоемножество

R0 = ( passport; number; status_c, staff_pl, status_pl, staff_c, player, fam, im, otch, pol, dateborn, datevidachi, kemvidan, country, city, street, numstreet, numflat, dolgnost, coach ) K0 = { passport }

R1 = ( pop_index, passport, num_p) K1 = { pop_index }

R2 = ( num_p, square, naznachenie) K2 = { num_p }

R3 = ( num_p, num_zal, type_zal) K3 = { num_p }

R4 = ( num_p, num_room ) K4 = { num_p }

R5 = ( tec_in, date_tec, num_p) K5 = { tec_in }

R6 = ( meb_in, date_meb, num_p) K6 = { meb_in }

R7 = ( inv_in_id, date_inv, num_p) K7 = { inv_in_id }

R8 = ( inv_number_inv, code_obj) K8 = { inv_number_inv }

R9 = ( inv_number_tec, code_obj) K9 = { inv_number_tec }

R10 = ( inv_number_meb, code_obj) K10 = { inv_number_meb }

R11 = ( code_obj, date, price) K11 = { code_obj }

R12 = ( code_obj, firm_inv, model_inv ) K12 = { code_obj }

R13 = ( code_objfirm_tec, model_tec, firm_meb ) K13 = { code_obj }

R14 = ( code, obj, firm_meb, model_meb, dlina, width, height) K14 = { code_obj }


Подобные документы

  • Проектирование базы данных "Хозяйственный учет футбольного клуба". Основные принципы построения, использования и оптимизации реляционных баз данных. Анализ предметной области. Использование ER-диаграмм, минимизация зависимостей, построение запросов.

    дипломная работа [856,5 K], добавлен 21.06.2010

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

    курсовая работа [624,5 K], добавлен 30.05.2019

  • Разработка базы данных магазина косметики, позволяющей вести учёт и анализ поставок и продаж. Описание предметной области, составление словаря понятий и терминов и системы функциональных зависимостей. Запись минимизированных запросов на языке SQL.

    курсовая работа [612,6 K], добавлен 18.07.2012

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

    презентация [397,3 K], добавлен 29.09.2013

  • Описание объекта информатизации и предметной области. Анализ параметров объектов предметной области, сбор исходных данных. Архитектура проекта, создание интерфейса базы данных. Поиск по объектам, датам. Редактирование, отчеты. Назначение программы.

    курсовая работа [2,3 M], добавлен 20.01.2016

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

    курсовая работа [190,8 K], добавлен 12.05.2009

  • Анализ предметной области, ее формализации с помощью функциональных зависимостей. Этапы минимизации системы функциональных зависимостей и на основании полученной редуцированной системы проектирование модели базы данных. Создание и моделирование запросов.

    курсовая работа [1,7 M], добавлен 21.06.2010

  • Оценка предметной области: концептуальные требования; выявление информационных объектов и связей между ними; построение базы данных. Описание входных и выходных данных информационной системы "Магазин компьютерной техники". Анализ диаграммы прецедентов.

    курсовая работа [294,8 K], добавлен 13.04.2014

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

    дипломная работа [1,3 M], добавлен 01.05.2015

  • Описание предметной области разрабатываемой базы данных для теннисного клуба. Обоснование выбора CASE-средства Erwin 8 и MS Access для проектирования базы данных. Построение инфологической модели и логической структуры базы данных, разработка интерфейса.

    курсовая работа [3,8 M], добавлен 02.02.2014

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.