КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Тема 5. Процесс проектирования и производства ПО. Проектирование баз данных
Цели и задачи темы: 1. Познакомиться с нормализацией диаграммы «сущность-связь» - первой, второй и третьей нормальными формами. 2. Понять механизм устранения связей типа «многие ко многим». 3. Изучить правила генерации базы данных на основе диаграммы «сущность-связь». 4. Рассмотреть основы языка SQL. Нормализация данных – это процесс приведения модели к виду, позволяющему получить в дальнейшем структуру базы данных, в которой устранена избыточность хранения и сведены к минимуму аномалии при добавлении, удалении, изменении данных. В процессе нормализации модель должна быть последовательно приведена к первой, второй, третьей нормальным формам (1НФ, 2НФ, 3НФ). Приведение к 1НФ состоит в исключении множественных или повторяющихся атрибутов. Атрибут (группа атрибутов) является множественным, если для одного экземпляра сущности может быть несколько различных значений атрибута. В примере на рис. 1 таким атрибутом является «Оценка», так как студент имеет много оценок по различным предметам.
Рис.1. Пример множественного (повторяющегося) атрибута Приведение к 1НФ осуществляется по следующим правилам (рис. 2): · множественный атрибут или группа таких атрибутов выделяются в самостоятельную сущность; · между исходной и новой сущностями устанавливается связь.
Рис.2. Правило приведения к 1НФ Результат приведения к 1НФ для сущности «СТУДЕНТ» (см. рис. 1) показан на рис. 3.
Рис.3. Приведение к 1НФ сущности Студент Первая нормальная форма, таким образом, является механизмом выявления упущенных сущностей и связей. Приведение ко 2НФ предполагает вынесение атрибутов, которые не удовлетворяют требованиям функционально полной зависимости от уникального идентификатора сущности, являющегося составным ключом. Атрибут А функционально зависит от атрибута В (ФЗ: В —› А), если каждому значению А соответствует не более одного значения В. Функциональная зависимость может иметь место не только от одного атрибута, но и от группы атрибутов – ФЗ: B, C, D —› А. Функциональная зависимость является полной, если атрибут зависит от составного ключа и не зависит ни от какого подмножества данного ключа, т. е. имеет место зависимость ФЗ: K1, K2,..., Kn —› А и не справедлива ни одна из следующих зависимостей: ФЗ: K1 —› А; ФЗ: K2 —› А;... ФЗ: K1, K2 —› А и т. д. Пример функционально неполной зависимости приведен на рис. 4. Здесь атрибуты «Факультет», «Курс» зависят от ключевого атрибута «Номер группы» и не зависят от других ключевых атрибутов: «Фамилия», «Имя», «Отчество».
Рис.4. Пример функционально неполной зависимости Приведение к 2НФ осуществляется по следующим правилам (рис. 5): · атрибуты, зависящие от части составного ключа, и сама эта часть выносятся в отдельную (новую) сущность и исключаются из исходной; · ключом новой сущности становится часть ключа исходной, от которой имеет место функционально неполная зависимость; · между исходной и новой сущностями устанавливается связь типа М: 1, ключевая со стороны «многие».
Рис.5. Правило приведения ко 2НФ Результат приведения ко 2НФ сущности “СТУДЕНТ” (см. рис. 4) показан на рис. 6. Приведение к 2НФ, так же как и приведение к 1НФ, позволяет выявить в модели упущенные сущности и связи и, кроме того, устранить избыточность данных в исходной модели.
Рис.6. Приведение ко 2НФ В примере, рассматриваемом на рис. 4, значение атрибутов «Факультет» и «Курс» повторялось бы для каждого экземпляра сущности «СТУДЕНТ», а, следовательно, неоправданно увеличивался бы объем памяти, занимаемой базой данных. Этот недостаток устранен в модели на рис. 6. Кроме того, изменение, например, номера курса (см. рис. 4), приводило бы к необходимости изменить значение атрибута для каждого экземпляра сущности «СТУДЕНТ», вместо того чтобы сделать это один раз для экземпляра сущности «ГРУППА» (аномалия изменения). Приведение к 3НФ состоит в исключении транзитивных зависимостей атрибутов от атрибутов, не являющихся частью ключа. Атрибут А транзитивно зависит от С, если А зависит от В, а В зависит от С (ФЗ: С —›* А, если ФЗ: В —› А и ФЗ: С —› В). Пример транзитивной зависимости приведен на рис. 7. Здесь значение атрибута «Должностной оклад» определяется неключевым атрибутом «Должность».
Рис.7. Пример транзитивной зависимости Приведение к 3НФ осуществляется по следующим правилам (рис. 8): · атрибуты, зависящие от неключевых атрибутов, и сами эти атрибуты выносятся в отдельную (новую) сущность и исключаются из исходной сущности; · ключом новой сущности становятся те атрибуты исходной, от которых была обнаружена транзитивная зависимость; · между исходной и новой сущностями устанавливается связь типа М: 1. Результат приведения к 3НФ сущности «СОТРУДНИК» (см. рис. 7) показан на рис. 9.
Рис.8. Правила приведение к 3НФ Приведение к 3НФ, так же как и приведение к 1НФ, 2НФ, позволяет выявить в модели упущенные сущности и связи и, кроме того, устранить избыточность данных и аномалии изменения.
Рис.9. Приведение к 3НФ Помимо рассмотренных выше преобразований для получения структуры, представимой в реляционных базах данных, в модели «сущность-связь» должны быть устранены связи вида «многие ко многим». Устранение таких связей выполняется по следующим правилам (рис. 10): · создается новая (так называемая «межсекционная») сущность; · между новой и исходными сущностями устанавливаются связи М: 1; · из модели удаляется связь М: М. Имя межсекционной сущности часто образуется как сочетание имен сущностей, между которыми была задана связь М: М. В общем случае межсекционные сущности могут не иметь собственных атрибутов; если это так, то определенные для них связи становятся ключевыми.
Рис.10. Правило устранения связей «многие-ко-многим»
Дата добавления: 2014-01-03; Просмотров: 306; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |