практика основы проектирования баз данных. Практическая работа. Проектирование реляционной бд. Нормализация таблиц по дисциплине ОП. 08 Основы проектирования баз данных
Скачать 160.92 Kb.
|
ОТЧЕТ Практическая работа. «Проектирование реляционной БД. Нормализация таблиц» по дисциплине «ОП.08 Основы проектирования баз данных»
Москва 2022 Практическая работа № 2 «Проектирование реляционной БД. Нормализация таблиц» Цель работы: выработать практические навыки моделирования предметной области и построения различных видов модели баз данных Нормализация, функциональные и многозначные зависимости Нормализация - это разбиение таблицы на две или более, обладающих лучшими свойствами при включении, изменении и удалении данных. Окончательная цель нормализации сводится к получению такого проекта базы данных, в котором каждый факт появляется лишь в одном месте, т.е. исключена избыточность информации. Это делается не столько с целью экономии памяти, сколько для исключения возможной противоречивости хранимых данных. Каждая таблица в реляционной БД удовлетворяет условию, в соответствии с которым в позиции на пересечении каждой строки и столбца таблицы всегда находится единственное атомарное значение, и никогда не может быть множества таких значений. Любая таблица, удовлетворяющая этому условию, называется нормализованной. Фактически, ненормализованные таблицы, т.е. таблицы, содержащие повторяющиеся группы, даже не допускаются в реляционной БД. Всякая нормализованная таблица автоматически считается таблицей в первой нормальной форме, сокращенно 1НФ. Таким образом, строго говоря, "нормализованная" и "находящаяся в 1НФ" означают одно и то же. Однако на практике термин "нормализованная" часто используется в более узком смысле - "полностью нормализованная", который означает, что в проекте не нарушаются никакие принципы нормализации. Теперь в дополнение к 1НФ можно определить дальнейшие уровни нормализации - вторую нормальную форму (2НФ), третью нормальную форму (3НФ) и т.д. По существу, таблица находится в 2НФ, если она находится в 1НФ и удовлетворяет, кроме того, некоторому дополнительному условию, суть которого будет рассмотрена ниже. Таблица находится в 3НФ, если она находится в 2НФ и, помимо этого, удовлетворяет еще другому дополнительному условию и т.д. Таким образом, каждая нормальная форма является в некотором смысле более ограниченной, но и более желательной, чем предшествующая. Это связано с тем, что "(N+1)-m нормальная форма" не обладает некоторыми непривлекательными особенностями, свойственным "N-й нормальной форме". Общий смысл дополнительного условия, налагаемого на (N+^-ю нормальную форму по отношению к N-й нормальной форме, состоит в исключении этих непривлекательных особенностей. За время развития технологии проектирования реляционных БД были выделены следующие нормальные формы: первая нормальная форма (1NF); вторая нормальная форма (2NF); третья нормальная форма (3NF); нормальная форма Бойса-Кодда (BCNF); четвертая нормальная форма (4NF); пятая нормальная форма, или нормальная форма проекции-соединения (5NF). Обычно на практике применение находят только первые три нормальные формы. Теория нормализации основывается на наличии той или иной зависимости между полями таблицы. Определены два вида таких зависимостей: функциональные и многозначные. Определение. Функциональная зависимость. Поле В таблицы функционально зависит от поля А той же таблицы в том и только в том случае, когда в любой заданный момент времени для каждого из различных значений поля А обязательно существует только одно из различных значений поля В. Отметим, что здесь допускается, что поля А и В могут быть составными. Другими словами, в отношении R атрибут Y функционально зависит от атрибута X в том и только в том случае, если каждому значению X соответствует одно значение Y. Схематично функциональную зависимость атрибута Y от атрибута X изображают гак: R.X -> R.Y R(X -> Y). ФЗ(Х -> Y) Определение. Полная функциональная зависимость. Поле В находится в полной функциональной зависимости от составного поля А, если оно функционально зависит от А и не зависит функционально от любого подмножества поля А. Пример нормализации Постановка задачи. Дано отношение. 1) определить первичный ключ отношения и все функциональные зависимости отношения; 2) привести отношение к 3НФ, указать первичные и внешние ключи полученных отношений, построить схему "Таблица-Связь". R = {НаименованиеЭмитента, ТипЦБ, ДатаЭмиссии, НоминальнаяCтоимость}. Таблица 1. Эмитенты
Решение Функциональные зависимости: <ДатаЭмиссии, НоминальнаяCтоимость> -> <НаименованиеЭмитента, ТипЦБ> ТипЦБ ->НаименованиеЭмитента Первичный ключ отношения R состоит из двух атрибутов: < ДатаЭмиссии, НоминальнаяCтоимость>. Таким образом, существует функциональная зависимость между неключевыми атрибутами отношения R, т.е. отношение R не находится в 3НФ. Приведение отношения R к 3НФ состоит в декомпозиции (разбиении отношения R на два отношения): R1= {НаименованиеЭмитента, ТипЦБ}, где Функциональные зависимости: ТипЦБ -> НаименованиеЭмитента, первичный ключ - атрибут ТипЦБ, И2={ТипЦБ, ДатаЭмиссии, НоминальнаяСтоимость}, Функциональные зависимости: <ДатаЭмиссии, НоминальнаяСтоимость> -> ТипЦБ, составной первичный ключ: <ДатаЭмиссии, НоминальнаяСтоимость>, внешний ключ: ТипЦБ. 3. Схема "Таблица-Связь": Рисунок 2.1. Схема «Таблица - связь» Задание для практической работы Дан фрагмент отношения (таблицы). Предполагается, что функциональные зависимости, имеющиеся во фрагменте, распространяются на все отношение (таблицу). Для вашего варианта: 1. Определить первичный ключ отношения и все функциональные зависимости отношения. 2. Привести отношение к 3НФ, указать первичные и внешние ключи полученных отношений. Индивидуальные задания к практической работе Вариант 1 – «Морские перевозки»
Вариант 2 – «Контрагенты»
Вариант 3 – «Отдел кадров»
|