Skip to content
Sunshine-ki edited this page Jan 13, 2021 · 6 revisions

Дана переменная-отношение R(A, B, C, D, E, F, G, H), для которой выполняется множество функциональных зависимостей S={CD–>A, EC–>H, GHB–>AB, C–>D, EG–>A, H–>B, BE–>CD, EC–>B}. Найти все потенциальные ключи для R.

S=
{
	CD–>A, 
	EC–>H, 
	GHB–>AB, 
	C–>D, 
	EG–>A, 
	H–>B, 
	BE–>CD, 
	EC–>B
}

Атрибуты, встречающиеся только в левой части: E,G (входят во все потенциальные ключи).

F - Не выводим, поэтому участвует во всех потенциальных ключах.

Проверим, является ли {E, G, F} - Потенциальным ключом. {E, G, F}+ = {E, G, A, F} - не является потенциальным ключом, т.к. это не полный набор нашей схемы.

  • Нет смысла добавлять A, т.к. она выводима из {E, G, F}.

  • Добавляем атрибут B.

Проверим, является ли {E, G, B} - Потенциальным ключом.

{E, G, B, F}+ = {E, G, B, A, C, D, H, F} - это полный набор нашей схемы.
(Значит {E, G, B, F} - потенциальный ключ).)

  • Добавляем атрибут С. {E, G, С, F}+ = {E, G, C, H, A, B, D, F} ==> потенциальный ключ

  • Добавляем атрибут D. {E, G, D, F}+ = {E, G, D, A, F} - Не является потенциальным ключом.

Значит пытаемся добавить к {E, G, D} атрибуты (B,C,H).

Добавляем атрибут B. {E, G, D, B, F}+ = {E, G, D, B, A, C, H, F} ==> потенциальный ключ

Добавляем атрибут C. {E, G, D, C, F}+ = {E, G, D, C, A, B, H, F} ==> потенциальный ключ

Добавляем атрибут H. {E, G, D, H, F}+ = {E, G, D, H, A, B, C, F} ==> потенциальный ключ

  • Добавляем атрибут H. {E, G, H, F}+ ={E, G, H, A, B, C, D, F} ==> потенциальный ключ

<- or ->

Clone this wiki locally