Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

РЕШЕНИЕ 17



Пример отношения R

PatNo PatName AppNo Time Doctor

1 John 0 09:00 Zorro

2 Kerr 0 09:00 Killer

3 Adam 1 10:00 Zorro

4 Robert 0 13:00 Killer

5 Zane 1 14:00 Zorro

Решение

1. 1NF Eliminate repeating groups.

None:

DB(PatNo,PatName,AppNo,Time,Doctor)

2. 2NF Eliminate partial key dependencies

DB(PatNo,AppNo,Time,Doctor)

R1(PatNo,PatName)

3. 3NF Eliminate transitive dependencies

None: so just as 2NF

4. BCNF Every determinant is a candidate key

DB(PatNo,appNo,Time,Doctor)

R1(PatNo,PatName)

- Go through all determinates where ALL of the left hand attributes are present in a relation and at least ONE of the right hand attributes are also present in the relation.

- PatNo -> PatName

PatNo is present in DB, but not PatName, so not relevant.

- PatNo, AppNo -> Time, Doctor

All LHS present, and time and doctor also present, so relevant. Is this a candidate key? Patno,appNo IS the key, so this is a candidate key. Thus this is OK for BCNF compliance.

- Time -> AppNo

Time is present, and so is appNo, so relevant. Is this a candidate key. If it was then we could rewrite DB as:

DB(PatNo, AppNo, Time, Doctor)

This will not work, as you need both time and Patno together to form a unique key. Thus this determinate is not a candidate key, and therefore DB is not in BCNF. We need to fix this.

- BCNF: rewrite to

DB(PatNo, Time, Doctor) PK = {PatNo, Time}

R1(PatNo, PatName) PK = PatNo

R2(Time, AppNo) PK = Time

Time is enough to work out the appointment number of a patient. Now BCNF is satisfied, and the final relations shown are in BCNF.

1.1NF Устраняет повторяющиеся группы.

Ничего:(None:?)

DB(PatNo,PatName,AppNo,Time,Doctor)

2. 2NF Устраняют частичные ключевые зависимости

DB(PatNo,AppNo,Time,Doctor)

R1 (PatNo, PatName)

3. 3NF Устраняют переходные зависимости

Ничего:(None:?) таким образом, так же, как 2NF

4. BCNF Каждый детерминант является возможным ключом

DB(PatNo,appNo,Time,Doctor)

R1 (PatNo, PatName)

- Пройдите весь determinates(определенный), где ВСЕ признаки левой руки присутствуют в отношении, и ПО КРАЙНЕЙ МЕРЕ ОДИН из правых признаков также присутствуют в отношении.

- PatNo -> PatName

PatNo присутствует в DB, но не PatName, таким образом, не релевантный.

- PatNo, AppNo -> Time, Doctor

Весь подарок LHS, и время и доктор также представляет, настолько релевантный. Действительно ли это - возможный ключ? Patno, appNo ЯВЛЯЕТСЯ ключом, таким образом, это - возможный ключ. Таким образом это хорошо для соблюдения BCNF.

- Time -> AppNo

Время присутствует, и так является appNo, настолько релевантным. Это возможный ключ. Если бы это было тогда, то мы могли бы переписать DB как:

DB(PatNo, AppNo, Time, Doctor)

Это не будет работать, поскольку Вам требуются и время и в Patno вместе, чтобы сформировать уникальный ключ. Таким образом это определенное не является возможным ключом, и поэтому DB не находится в BCNF. Мы должны фиксировать это.

- BCNF: перепишите к

DB(PatNo, Time, Doctor) PK = {PatNo, Time}

R1(PatNo, PatName) PK = PatNo

R2(Time, AppNo) PK = Time

Времени достаточно, чтобы решить число назначения пациента. Теперь BCNF удовлетворен, и заключительные показанные отношения находятся в BCNF.

ВАРИАНТ 18 (РК 1/Семестр 1)

Дана переменная-отношение R(StudNo, StudName, (Major, Adviser, (CourseNo, Ctitle, InstrucName, InstructLocn, Grade))), для которой выполняется множество функциональных зависимостей S={StudNo–>StudName, CourseNo–>{Ctitle, InstrucName}, InstrucName–>InstrucLocn, {StudNo, CourseNo, Major}–>Grade, {StudNo, Major}–>Advisor, Advisor–>Major}. Показать этапы преобразования переменной-отношения R в BCNF.





Дата публикования: 2015-02-03; Прочитано: 236 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.007 с)...