ТОРА (9) - Семинар №4 - Синтез хорошей БД: различия между версиями

Материал из Кафедра ИУ5 МГТУ им. Н.Э.Баумана, студенческое сообщество
Перейти к навигации Перейти к поиску
(Новая страница: «__TOC__ == Синтез хорошей схемы БД == Из [[ТОРА (9) - Семинар №2 - Функциональные зависимости#Зад...»)
 
Строка 20: Строка 20:
3)
3)


: {{Формула|f=B\rightarrow^? AD}} !!нет!!
: {{Формула|f=B\rightarrow^? AD}} <span style="color:red">нет</span>
: {{Формула|f=B:+ = BD}}, {{Формула|f=AD\nsubseteq B^+}}
: {{Формула|f=B:+ = BD}}, {{Формула|f=AD\nsubseteq B^+}}


: {{Формула|f=C\rightarrow^? AD}} !!нет!!
: {{Формула|f=C\rightarrow^? AD}} <span style="color:red">нет</span>
: {{Формула|f=C:+ = C}}, {{Формула|f=AD\nsubseteq C^+}}
: {{Формула|f=C:+ = C}}, {{Формула|f=AD\nsubseteq C^+}}



Версия от 21:58, 23 октября 2012

Синтез хорошей схемы БД

Из семинара 2: предметную область зададим следующую: "график полётов".

График = (пилот, рейс, дата, время), сокращённо: $$\rho=(A,B,C,D)$$

Итоговая $$F = (B\rightarrow D, D\rightarrow B, BC\rightarrow A)$$

Идём по алгоритму:

1)

$$УНП = B\rightarrow D, D\rightarrow B, BC\rightarrow AD$$

2)

пропускаем, потому что есть $$BC\rightarrow AD$$

3)

$$B\rightarrow^? AD$$ нет
$$B:+ = BD$$, $$AD\nsubseteq B^+$$
$$C\rightarrow^? AD$$ нет
$$C:+ = C$$, $$AD\nsubseteq C^+$$
УНП остаётся без изменений.

4)

разбиваем на классы:
$$B\rightarrow D$$, $$D\rightarrow B$$, $$K_1 = BD$$
$$BC\rightarrow AD$$, $$K_2 = BCAD$$

5)

построить граф:

6)

7)

8)

пропускаем, потому что нет ФЗ с пустой правой частью.

9)

$$\rho = (BD, ABC) = (R_1, R_2)$$

10)

  • смотрим сохранение без потерь:
$$A$$ $$B$$ $$C$$ $$D$$
$$R_1$$ $$b$$ $$a$$ $$b$$ $$a$$
$$R_1$$ $$a$$ $$a$$ $$a$$ $$b$$
$$A$$ $$B$$ $$C$$ $$D$$
$$R_1$$ $$b$$ $$a$$ $$b$$ $$a$$
$$R_1$$ $$a$$ $$a$$ $$a$$ $$a$$
Есть строка сплошь из $$a$$, значит схема обладает соединением без потерь.
  • смотрим сохранение ФЗ:
1-4) $$H = \varnothing$$, $$УНП = (B\rightarrow B\rightarrow D, BC\rightarrow AD, D\rightarrow B)$$
5) $$H$$ не пусто.
6)
$$BC\rightarrow^? D\in(B\rightarrow D, BC\rightarrow A, D\rightarrow B)^+$$
$$(BC)^+ = BCAD$$, $$D\in (BC)^+$$, значит, схема обладает сохранением ФЗ.

Таким образом, $$\rho$$ обладает соединением без потерь, сохранением ФЗ и находится в 3НФ.

ДЗ 1

Сделать к следующему (пятому) семинару.

Проверить, находятся ли получившиеся $$R_1$$ и $$R_2$$ в НФБК?

ДЗ 2

Сделать к послеследующему (шестому) семинару.

Первая задача

Задана та же предметная область (про пилотов), но ФЗ другие:

$$F = (B\rightarrow D, D\rightarrow B, AB\rightarrow D, AD\rightarrow B, BC\rightarrow A, BC\rightarrow D, CD\rightarrow A, CD\rightarrow B, ABC\rightarrow D, ACD\rightarrow B, BCD\rightarrow A)$$

Синтезировать БД с помощью алгоритма.

Вторая задача

Предметная область: курсы иностранных языков.

$$U =$$ (код курса, код филиала, условия обучения, номер группы (состоит из номера филиала и номера группы, номер уровня обучения, ФИО слушателя, число оплаченных слушателем занятий (оплачиваются все занятия курса сразу, стоимость обучения для студентов и школьников, стоимость обучения для взрослых, адрес филиала, заведующий филиалом, телефон филиала, часы работы преподавателя с группой слушателей (количество часов), зарплата преподавателя, ФИО преподавателя))) = $$(A, B, C, D, E, K, L, N, O, P, R, S, T, V, X)$$

ФЗ:

$$F = (A\rightarrow CNO, B\rightarrow PRS, ADE\rightarrow X, K\rightarrow DEL, L\rightarrow T, X\rightarrow VT, ET\rightarrow V, D\rightarrow XBE)$$

Синтезировать схему БД по алгоритму. Со следующими свойствами:

  • соединение без потерь;
  • каждая схема в 3НФ;
    • каждую проверить ещё и на НФБК;
  • наименьшее число схем отношений;
  • сохранение ФЗ (если не обладает, то новых схемы отношений добавлять не надо).