Оптимизация базы данных "Хозяйственный учет футбольного клуба"
Неформализованное описание предметной области. Словарь терминов для объектов и элементов данных. Первичные и альтернативные ключи. Диаграмма сущность-связь для предметной области. Неизбыточное редуцированное покрытие системы функциональных зависимостей.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 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