Базы данных. Языки SQL и QBE — страница 10

  • Просмотров 12066
  • Скачиваний 1959
  • Размер файла 50
    Кб

альтернатива, можно создать новую таблицу «Предметы», которая будет содержать первичный ключ исходного отношения («Табельный№», «Группа») и столбец «Предмет». В результате получено отношение А                            В                   С

           D             E                  F Преподаватель    Должность    Оклад    Группа    Староста    Предмет    Выявленные функциональные зависимости: А◊В,С; В◊С; D◊Е; DF◊А. Первичный ключ: DF, так как от DF зависят остальные атрибуты. Вторая нормальная форма позволяет устранить избыточность

данных, связанную с хранением информации различного типа в одном отношении. Отношение находится во второй нормальной форме (2НФ), если оно находится в 1НФ и каждый неключевой атрибут функционально полно зависит от ключа. Другими словами отношение во второй нормальной форме – отношение без атрибутов, находящихся в частичной функциональной зависимости от ключевых атрибутов. Отношения, не во 2НФ допускают аномалии обновления,

заключающиеся в необходимости обновлений (удалений, модификаций, вставки) строк со значением атрибута, функционально неполно зависящего от ключа, во всех строках, где он встречается с соответствующим значением части ключа, потребуется выполнить контроль соответствия нового сочетания (часть ключа - атрибут) и уже существующих, а при удалении строк может теряться и нужная информации о имеющем место факте вида «часть ключа

– атрибут». Для атрибутов, функционально полно зависящих от ключа, каждое изменение затрагивает только одну строку – строку с изменяемым значением. Приведение отношения ко 2НФ позволяет исключить данный тип аномалий обновления. Пример: Отношение А                            В                  

С            D             E                  F Преподаватель    Должность    Оклад    Группа    Староста    Предмет    находится в 1НФ. При этом отношение допускает следующие аномалии обновления: а) аномалия вставки – при изменении старосты группы необходимо будет изменить соответствующее