Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Пример отношения 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 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!