close

Вход

Забыли?

вход по аккаунту

...зависимости не ключевых атрибутов отношения от ключа

код для вставкиСкачать
В реляционной модели данных акцентируется понятие
функциональной зависимости не ключевых атрибутов
отношения (таблицы) от ключа в том смысле, что для
конкретного значения ключа каждый не ключевой
атрибут имеет вполне определенное, единственное
значение.
Ключом являются один или несколько атрибутов
(столбцов), отношения (таблицы) значения которых
идентифицируют любой кортеж отношения (строку
таблицы).
Обязательность наличия ключа приводит к важному
свойству – в отношении (таблице) не может быть двух
одинаковых кортежей (строк).
Шифр
студента
Р07101
8Г6101
899208
8Г6102
8Г6103
8Г6104
8Г6105
8Г6202
Р07201
8Г6203
Ф.И.О.
Албул А.
Беликова Т.А.
Беликова Т.А.
Борисова А.И
Васильев А.И.
Васильев А.И.
Гапоненко М.
Гузиенко О.
Дель Д.
Доронина О.
Номер
группы
Р071И
8Г61
8992
8Г61
8Г61
8Г61
8Г61
8Г62
Р071М
8Г62
Беликова получает дополнительное образование по второй специальности
(учится в двух различных группах), Васильевы А,И, скорее всего братьяблизнецы, например Александр и Алексей
Следует обратить внимание на то, что если в качестве
атрибута Шифр студента берется № зачетной книжки, то
это будет ключ отношения, но, если в качестве атрибута
Шифр студента взять № паспорта или ИНН, то возможны
несколько различных кортежей с одним и тем же значением
атрибута
№ паспорта или ИНН (для студентов,
обучающихся на нескольких специальностях), т.е. этот
атрибут теряет свойство ключа.
Шифр
студента
06 02 345678
06 02 543210
06 02 543210
06 34 567898
08 66 678909
06 02 543219
06 02 643210
08 66 679909
08 65 678909
08 67 678909
Ф.И.О.
Албул А.
Беликова Т.А.
Беликова Т.А.
Борисова А.И
Васильев А.И.
Васильев А.И.
Гапоненко М.
Гузиенко О.
Дель Д.
Доронина О.
Номер
группы
Р071И
8Г61
8992
8Г61
8Г61
8Г61
8Г61
8Г62
Р071М
8Г62
Только все три атрибута обладают свойством ключа
Шифр
студента
Ф.И.О.
Дата
рождения
Пол
Дисциплина
Оцен Рей
ка тинг
Что является ключом?
Следует отметить, что значения атрибутов ключа
определяют смысл остальных (не ключевых) атрибутов
Шифр
студента
Р07109
Р07110
Р07112
.
Р07109
Ф.И.О.
Дата Пол Дисцип- Оцен Рей
рожделина
ка тинг
ния
5
950
Иванов И.И. 01.01.78 М матанализ
Петров П.П.
23.02.78 М матанализ
4
900
Сидорова Е.И. 8.03.79
Ж матанализ
5
1000
Иванов И.И.
01.01.78
М
Р07110 Петров П.П.
23.02.78
М
Р07112
8.03.79
Ж
.
Р07109 Иванов И.И. 01.01.78
Р07110 Петров П.П.
23.02.78
Р07112 Сидорова Е.И. 8.03.79
М
М
Ж
Сидорова Е.И.
программи
-рование
программи
-рование
программи
-рование
5
980
5
950
4
850
БД и БЗ
БД и БЗ
БД и БЗ
4
5
4
850
980
800
Если не знать особенности этой таблицы (в части столбцов есть
дублирование одних и тех же сведений), то можно неверно
осуществить обновление, например, если сменится фамилия Петров
на другую, то изменится только в первой записи.
Реляционная модель (и СУБД соответственно) считает, что такого в
таблице быть не может.
Значит надо преобразовать – НОРМАЛИЗОВАТЬ.
Шифр
студента
Дисциплина
Что является ключом?
Месяц
Колво
пропу
сков
Оценк
а по
аттест
ации
Функциональная зависимость.
Шифр
студента
Дисциплина
Месяц
Кол- Рейтинг по
во
дисц. за
пропу месяц
сков
10
150
0
150
40
230
Р07109
Р07110
Р07112
.
Р07109
Р07110
Р07112
.
Р07109
Р07110
Р07112
.
Р07109
Р07110
Р07112
.
Р07109
Р07110
матанализ
матанализ
матанализ
сентябрь
сентябрь
сентябрь
матанализ
матанализ
матанализ
октябрь
октябрь
октябрь
6
16
0
140
140
150
программирование
программирование
программирование
декабрь
декабрь
декабрь
0
20
10
50
130
150
БД и БЗ
БД и БЗ
БД и БЗ
февраль
февраль
февраль
0
6
8
250
140
150
БД и БЗ
БД и БЗ
май
май
6
0
150
50
Здесь вроде тоже дублирование, но в комбинациях значений
первых трех атрибутов дублирования нет – ключ
идентифицирует любую строку.
А здесь?
Шифр Дисципл Оц Рейт. Месяц
студен
ина
ест-та
та
нка по
дисц.
Кол.
проп.
занятий
Рейти
нг по
мес.
атт-и
Шифр Дисципл Оцестудента
ина
нка
Р07109
Р07109
.
Р07109
.
Р07109
.
Р07109
.
Р07110
Р07110
.
Р07110
.
Р07110
.
Р07110
Рейт. Месяц
Кол. Рейти
ст-та
проп. нг по
по
заня- мес.
дисц.
тий атт-и
950 сентябрь
10
150
950 октябрь
6
240
матанализ
матанализ
5
5
программ
ирование
5
980
декабрь
0
50
БД и БЗ
4
850
февраль
0
150
БД и БЗ
4
850
май
6
150
матанализ
матанализ
4
4
900
900
сентябрь
октябрь
0
16
250
140
программ
ирование
5
950
декабрь
20
230
БД и БЗ
5
990
февраль
6
140
БД и БЗ
5
990
май
0
150
Нормализация отношений
Нормализация отношения это
- исключение частичных зависимостей атрибутов внутри
отношения;
- преобразование отношения путем разбиения на более простые
с целью исключения зависимостей, вызывающих проблемы с
однозначным определением значений атрибутов;
Требование нормализации отношений направлено на
обеспечение такой их структуры, которая исключает
некорректное обновление значений некоторых атрибутов
(аномалия обновления) и ошибки в выполнении определенных
операций выборки.
Теория РМД рассматривает пять уровней нормализации
отношений - пять нормальных форм, но наибольшую
практическую значимость имеют первые три нормальных
формы. Аномалии более высоких форм не оказывают
существенного влияния на результаты обработки отношений и
встречаются крайне редко.
ПЕРВАЯ НОРМАЛЬНАЯ ФОРМА (1НФ)
Отношение удовлетворяет первой нормальной форме (1НФ),
если все его атрибуты атомарны (неделимы), т.е. среди
атрибутов нет составных или с множественными
значениями.
Например,
приведенное
отношение
СТУДЕНТ
не
удовлетворяет первой нормальной форме, т.к. имеет атрибут
место рождения, состоящий из атрибутов республика,
область, город (село), а также атрибут иностранный язык
(которым владеет студент) с множественными значениями для
некоторых студентов.
СТУДЕНТ
Код
Место рождения
студента Ф.И.О. Республ Область Город
ика
(село)
Когда говорится о невозможности иметь составной атрибут
(например, место рождения) имеется в виду, что невозможно
одновременно иметь (обращаться к ним) атрибуты республика,
область, город и те же самые значения именовать как место
рождения.
Необходимо принять либо первый (детальные атрибуты), либо
второй вариант. Если все же необходимо кроме место рождения
иметь возможность обращаться и к атрибуту город, то
необходимо ввести дополнительный атрибут город, где родился.
Более значительная специфика
множественными значениями.
Ф.И.О.
Код
студента
Дата
рождения
связана
с
атрибутом
Иностранный язык
с
Соблюдая требование реляционной модели по поводу
одинакового размера определенного атрибута во всех
кортежах, мы должны бы были представить исходное
отношение в одно из следующих видов
ВАРИАНТ1
Ф.И.О.
Код
студе
нта
.
.
427101
427102
427103
.
.
.
477001
Дата
рождения
Иностранный язык
Гончар Е. 29.04.78
Драган М. 19.01.79
Зюкин М. 26.03.79
немецкий, английский
немецкий, шведский, польский
английский
Акулин А 29.04.76
не владеет
В этом случае размер атрибута иностранный язык,
рассчитанный под максимально возможное число языков,
будет неоправданно большим, к тому же процедура поиска
кортежей с заданным значением языка будет отличаться от
аналогичной процедуры для атрибутов с атомарными
значениями.
Другой
вариант
структуризации,
исключающий
множественность значения атрибута в одном кортеже
Ф.И.О.
Код
студента
Дата
Иностранн
рождения ый язык
.
.
427101
427101
427102
427102
427102
427103
Гончар Е.
Гончар Е.
Драган М.
Драган М.
Драган М.
Зюкин М.
29.04.78
29.04.78
19.01.79
19.01.79
19.01.79
26.03.79
немецкий
английский
немецкий
шведский
польский
английский
Акулинин А
29.04.76 не владеет
.
477001
Второе
представление снимает предыдущие проблемы,
однако, порождает новые, связанные с дублированием
значений первых атрибутов для студентов, владеющих
несколькими языками. Кроме излишнего расхода памяти здесь
возникают проблемы обновления значений атрибута Ф.И.О.
(специальная процедура должна быть) и проблема обработки,
например, подсчет числа объектов, родившихся в некоторый
день или в диапазоне дат.
Реляционная модель требует нормализации (приведения к
1НФ) путем разбиения исходного отношения на два
следующим образом:
из исходного отношения исключается атрибут с
множественным значением, а
исключенный атрибут
вместе с ключом исходного отношения образуют новое
отношение, в котором все атрибуты ключевые.
Так для из исходного отношения СТУДЕНТ
СТУДЕНТ
Код
студента
Ф.И.О.
Дата
Иностра
рождения
нный
язык
исключается атрибут с множественным
получается новое отношение СТУДЕНТ1,
СТУДЕНТ1
Код
студента
Ф.И.О.
значением
и
Дата
рождения
а
исключенный атрибут вместе с ключом исходного
отношения образуют новое отношение СТУДЕНТ2
СТУДЕНТ2
Код
Иностранный язык
студента
ВТОРАЯ НОРМАЛЬНАЯ ФОРМА (2НФ)
Отношение удовлетворяет второй нормальной форме (2НФ),
если оно удовлетворяет 1НФ и не содержит атрибутов,
зависящих от части ключа.
Или
Отношение удовлетворяет второй нормальной форме (2НФ),
если все его не ключевые атрибуты функционально полно
зависят от ключа.
Ниже приведено отношение, не удовлетворяющее 2НФ по
следующей причине. Ключ отношения составляют атрибуты
код студента и номер семестра, т.к. комбинация значений
именно этих атрибутов уникальна для любого кортежа
отношения.
Схема структуры СЕМЕСТР
Ф.И.О.
Дата
Код
Ном.
рождения семес
студента
тра
Экземпляры структуры СЕМЕСТР
.
Гончар Е.
29.04.78
427101
1
Гончар Е.
29.04.78
427101
2
Гончар Е.
29.04.78
427101
3
.
Драган М.
19.01.79
427102
1
Драган М.
19.01.79
427102
2
.
477001 Акулинин А. 29.04.76
1
Драган М.
19.01.79
477001
2
Драган М.
19.01.79
477001
3
.
Тип
стипендии
Рейтинг
за
семестр
стандартная
стандартная
не получает
105
100
70
стандартная
повышенная
100
130
стандартная
стандартная
стандартная
100
110
100
Атрибуты ф.и.о. и дата рождения являются характеристиками
студента вне зависимости от семестра, т.е. зависят только от
части ключа – от атрибута код студента.
При использовании такого ненормализованного отношения
возникают те же проблемы обновления и подсчета числа
объектов, что были отмеченны при рассмотрении примера
нормализации по 1НФ.
Приведение отношения ко 2НФ (нормализация по 2НФ)
заключается в разбиении исходного отношения на два, одно
из которых включает атрибуты ключа исходного
отношения и атрибуты, зависящие от полного ключа, а
второе – атрибуты зависящего от части ключа вместе с
атрибутами этой части.
Схема структуры СЕМЕСТР
Ф.И.О.
Дата
Код
Ном.
рождения семес
студента
тра
СТУДЕНТ4
Ф.И.О.
Код
студента
СТУДЕНТ5
Код
Номер
студента семестра
Тип
стипендии
Рейтинг
за
семестр
Дата
рождения
Тип
стипендии
в семестре
Рейтинг
студента
в семестре
Возможно несколько нарушений в одном отношении
Измененная схема структуры СЕМЕСТР
Ф.И.О. Дата Ном.
Тип
Тип
Код
рожде семес семес стипенд
студента
ния
тра
ии
тра
Рейтинг
за
семестр
Если атрибут Тип семестра определен на домене (весенний,
осенний), то появляется еще одна частичная зависимость
атрибута Тип семестра от атрибута Номер семестра, а значит
нарушение 2НФ, требующее выделения еще одного
отношения
Номер
семестра
Тип
семестра
ТРЕТЬЯ НОРМАЛЬНАЯ ФОРМА (3НФ)
Отношение удовлетворяет третьей нормальной форме
(3НФ), если оно удовлетворяет 2НФ, и среди его не
ключевых атрибутов нет зависящих от другого неключевого
атрибута (нет атрибутов, транзитивно зависящих от ключа).
Код
студен
та
.
427101
427102
427103
.
477001
.
Ф.И.О.
студента
Дата
Адрес
рождения общежития
Ф.И.О.
коменданта
общежития
Гончар Е.
Драган М.
Зюкин М.
29.04.78
19.01.79
26.03.79
Лыткина,2 Королева И.В.
Лыткина,4 Никитина Г.Г.
Лыткина,2 Королева И.В.
Акулинин А
29.04.76
Лыткина,4 Никитина Г.Г.
В этом примере ключ состоит из одного атрибута код студента,
атрибут ф.и.о. коменданта общежития однозначно связан (с
неключевым атрибутом адрес общежития, где проживает
студент, т.е. функционально зависит от него (точно также как и
от ключа). Естественно, одно и тоже значение атрибута ф.и.о.
коменданта общежития будет повторяться во всех кортежах,
относящихся к студентам, проживающим в одном и том же
общежитии. При использовании такого ненормализованного
отношения также возникают проблемы корректного обновления
(изменения фамилии коменданта) и выборки кортежей.
Приведение отношения к 3НФ (нормализация по 3НФ)
заключается в разбиении исходного отношения на два
одно из которых есть исходное отношение без атрибутов,
зависящих от не ключевого атрибута. Второе отношение
состоит из атрибута, от которого в исходном отношении
зависели исключенные атрибуты (оно станет ключом в
новом отношении) плюс атрибуты, исключенные из
исходного отношения.
Нормализация отношения STUDENT
Шифр
студента Ф.
И.
О
Про
Дата
рождения
фес
де мес г
нь яц о
д сия
ФИО Дис Оц Кол
№
старо ци- ен про
гру
сты пли- ка пус
пп
групп на
ков
ы
ы
Ключ отношения состоит из двух атрибутов шифр студента и
дисциплина потому, что значение любого другого атрибута
однозначно определяется значением атрибутов ключа, другими
словами, если нам известны значения атрибутов шифр
студента и дисциплина, то значение любого другого атрибута
вполне определено и является единственным.
Предлагается следующая методика определения ключевых
атрибутов:
1.Определяем атрибут–идентификатор объекта, информация
о котором содержится в отношении. Он обязательно войдет в
ключ. Как правило, это крайний левый атрибут.
В нашем случае это шифр студента.
Шифр
студен Ф.
И.
та
О
Про
ФИО Дис Оц Кол
Дата
№
старо ци- ен про
рождени
гру
фес
сты пли- ка пус
я
пп
групп на
ков
ы
де мес г
ы
сия
нь яц о
д
2. Анализируем атрибут следующий справа.
Если для одного объекта может быть только одно
значение этого атрибута, то это не ключевой атрибут,
зависящий от ключевого атрибута-идентификатора объекта.
Шифр
студента Ф.
И.
О
Про
Дата
рождения
фес
де мес г
нь яц о
д сия
ФИО Дис Оц Кол
№
старо ци- ен про
гру
сты пли- ка пус
пп
групп на
ков
ы
ы
ФИО, день, месяц, год рождения являются такими,
функционально зависящими от атрибута Шифр студента
Если для одного объекта может быть несколько значений
этого атрибута, то это:
- либо атрибут с множественным значением, (если далее в
отношении нет атрибутов, зависящих от него - не
удовлетворение 1НФ),
-либо еще один атрибут ключа, если далее есть атрибуты,
зависимые от него и от атрибута-идентификатора, ранее
включенного в ключ.
Шифр
студен Ф.
И.
та
О
Про
Дата
рождения
фес
де мес г
нь яц о
д сия
ФИО Дис Оц Кол
№
старо ци- ен про
гру
сты пли- ка пус
пп
групп на
ков
ы
ы
Например, атрибут профессия – студент может иметь
несколько профессий.
Но далее справа нет атрибутов,
зависящих от атрибута профессия (это могли быть – год
получения, образовательное учреждение, где получена
профессия и т.п.). Значит это атрибут с множественным
значением, а не ключевой.
Т.Е. имеет место нарушение 1НФ
Вообще-то СПРАВА – это, как правило, а могло быть и слева, если
мы пропустили, но это редко м.б. (попробуем в нашем случае) и
скорее всего выловим раньше и будем искать объект описания далее
3. Анализируем атрибут, следующий справа.
Если для одной комбинации значений ранее определенных
ключевых атрибутов может быть только одно значение
этого атрибута, то это не ключевой атрибут.
Шифр
студента Ф.
И.
О
Про
Дата
рождения
фес
де мес г
нь яц о
д сия
ФИО Дис Оц Кол
№
старо ци- ен про
гру
сты пли- ка пус
пп
групп на
ков
ы
ы
В нашем случае это атрибуты № группы и ФИО старосты
однозначны для каждого студента, а значит и для конкретного
значения ключевого атрибута – Шифр студента.
А вот атрибут дисциплина снова претендент на ключ, т.к. у
каждого студента будет несколько значений.
Следующие справа атрибуты оценка и количество пропусков,
зависят от атрибута дисциплина, т.е. он входит в состав
ключа, причем атрибуты оценка и количество функционально
зависят от двух атрибутов – шифр студента и дисциплина
Шифр
студента Ф.
И.
О
Про
ФИО Дис Оц Кол
Дата
№
старо ци- ен про
рождения
гру
фес
сты пли- ка пус
пп
де мес г
групп на
ков
ы
нь яц о
ы
сия
д
Если для одной комбинации значений ранее
определенных ключевых атрибутов может быть несколько
значений вновь анализируемого атрибута, то это претендент
на ключевой атрибут.
Так, например, если в исходное отношение добавить
атрибуты месяц и количество пропусков у студента по
дисциплине в месяц, то атрибут месяц был бы как раз таким
атрибутом (входит в состав ключа)
Шифр
студен Ф.
И.
та
О
Про
ФИО Дис Оц Кол
Дата
№
старо ци- ен про
рождения
гру
фес
сты пли- ка пус
пп
де мес г
групп на
ков
ы
нь яц о
ы
сия
д
Только после того как определен ключ можно приступать
к анализу на удовлетворение нормальным формам.
Если ключ определен неверно, неверным будет и результат
нормализации
Шифр
студента Ф.
И.
О
Про
ФИО Дис Оц Кол
Дата
№
старо ци- ен про
рождения
гру
фес
сты пли- ка пус
пп
де мес г
групп на
ков
ы
нь яц о
ы
сия
д
Анализ на удовлетворение 1НФ
Атрибут дата рождения (день, месяц, год) не удовлетворяет
первой нормальной форме (1НФ) как составной атрибут.
Допустимо использовать:
- либо только атрибут дата рождения и тогда день, месяц,
год не могут выступать в качестве отдельных атрибутов,
- либо допустимо использовать отдельно атрибуты день,
месяц, год, но не атрибут дата рождения, - - либо иметь
полное дублирование: иметь и атрибут дата рождения и
атрибут день, месяц, год.
Допустим для дальнейшего анализа оставляем атрибут дата
рождения.
Атрибут профессии также не удовлетворяет 1НФ, если
имеется в виду хранить для каждого студента все профессии,
которыми он владеет.
Шифр
студента Ф.
И.
О
Про
ФИО Дис Оц Кол
Дата
№
старо ци- ен про
рождения
гру
фес
сты пли- ка пус
пп
де мес г
групп на
ков
ы
нь яц о
ы
сия
д
Для удовлетворения 1НФ необходимо из исходного отношения
удалить атрибут профессии и сформировать новое отношение
STUD_PROF.
Шифр Профессия
студента
Или в анкетной форме
1. Шифр студента
2. Профессия
Осталось следующее отношение, которое анализируем на
Удовлетворение 2НФ
STUDENT0
Шифр
студента Ф.
И.
О
ФИО Дис Оц Кол
Дата
№
старо ци- ен про
рождени гру
сты пли- ка пус
я
пп
групп на
ков
ы
де мес г
ы
нь яц о
д
Атрибуты ф.и.о. , дата рождения. номер группы, староста
группы однозначно определяются для конкретного студента,
т.е. функционально зависят от одного ключевого атрибута
шифр студента, но не зависят от второго ключевого атрибута
дисциплина, в то время как атрибуты оценка и количество
пропусков студента по дисциплине зависят от полного ключа
– не соблюдение условий 2НФ.
STUDENT1
STUD_DISC
1. ШИФР СТУДЕНТА
1. ШИФРР СТУДЕНТА
2. Ф.И.О.
2. ДИСЦИПЛИНА
3. Дата рождения
3. Оценка по дисциплине
4. Номер группы
4. Количество пропусков
5. Староста группы
по дисциплине
STUDENT1
Шифр
студен Ф.И.О
та
ФИО
Дата
№
старо
рождения гру
сты
пп
де мес г
групп
нь яц о ы
ы
д
STUD_DISC
Шифр
студента
Дисци- Оценка Количество
плина
пропусков
В отношении STUDENT1 значение атрибута староста
группы однозначно определяется значением не ключевого
атрибута номер группы, т.е. транзитивно (через номер
группы) зависит от ключа шифр студента.
STUDENT1
Шифр Ф.И.О
студента
ФИО
Дата
№
старосты
рождения группы
группы
Имеет место нарушение 3-ей нормальной формы (3НФ) .
Исключаем нарушение, выделив дополнительное отношение
GRUPPA и преобразуя STUDENT1 в STUDENT2
GRUPPA
1. Номер группы
2.Ф.И.О. старосты группы
STUDENT2
1. Шифр студента
2. Ф.И.О.
3. Дата рождения
4. Номер группы
GRUPPA
№ группы
ФИО
старосты группы
STUDENT2
Шифр
студента Ф.И.О
Дата
рождения
№
группы
Таким образом, в процессе нормализации исходное
отношение STUDENT преобразовано в 4 отношения:
STUD-PROF, GRUPPA, STUDENT2, STUD_DISC
Обращаю внимание на последовательность анализа и
проведения нормализации 1НФ затем 2НФ затем 3НФ
Закрепляем
Нормализация отношения это
- исключение частичных зависимостей атрибутов внутри
отношения;
- преобразование отношения путем разбиения на более
простые с целью исключения зависимостей, вызывающих
проблемы с однозначным определением значений атрибутов;
Отношение удовлетворяет первой нормальной форме,
если
- среди его атрибутов нет составных атрибутов;
- среди его атрибутов нет атрибутов с множественными
значениями;
1/--страниц
Пожаловаться на содержимое документа