Скачать презентацию Реляционная модель Реляционная алгебра Нормализация Реляционная Скачать презентацию Реляционная модель Реляционная алгебра Нормализация Реляционная

Л5_Реляционная модель_Нормализация.ppt

  • Количество слайдов: 33

Реляционная модель. Реляционная алгебра. Нормализация. Реляционная модель. Реляционная алгебра. Нормализация.

 Реляционная модель данных К основным достоинствам реляционной модели относят: Ø Наличие небольшого набора Реляционная модель данных К основным достоинствам реляционной модели относят: Ø Наличие небольшого набора абстракций, которые позволяют моделировать предметную область и допускают точные формальные определения. Ø Наличие простого и достаточно мощного математического аппарата, опирающего на теорию множеств и математическую логику и обеспечивающего теоретический базис реляционного подхода к организации баз данных. Ø Возможность ненавигационного манипулирования данными без необходимости знания конкретной физической организации баз данных во внешней памяти.

 Отношения N-арным отношением R называют подмножество декартова произведения D 1 x D 2 Отношения N-арным отношением R называют подмножество декартова произведения D 1 x D 2 x. . . x Dn множеств D 1, D 2, . . . , Dn ( n > 1 ), необязательно различных. Исходные множества D 1, D 2, . . . , Dn называют в модели доменами. D 1 x D 2 x. . . x Dn — полное декартово произведение, т. е. набор всевозможных сочетаний из n элементов каждое, где каждый элемент берется из своего домена. Например, три домена: D 1 — три фамилии, D 2 — набор из двух дисциплин и D 3 — набор из трех оценок. Допустим, содержимое доменов следующее: D 1 = {Иванов, Крылов, Степанов}; D 2 = {Теория автоматов, Базы данных} ; D 3 = {3, 4, 5}

 Отношения Тогда полное декартово произведение содержит набор из 18 троек, где первый элемент Отношения Тогда полное декартово произведение содержит набор из 18 троек, где первый элемент — это одна из фамилий, второй — это название одной из учебных дисциплин, а третий — одна из оценок. <Иванов, Теория автоматов, 3>; <Иванов, Теория автоматов, 4>; <Иванов, Теория автоматов, 5> <Крылов, Теория автоматов, 3>; <Крылов, Теория автоматов, 4>; <Крылов, Теория автоматов, 5>; <Степанов, Теория автоматов, 3>; <Степанов, Теория автоматов, 4>; <Степанов, Теория автоматов, 5>; <Иванов, Базы данных, 3>; <Иванов, Базы данных, 4>; <Иванов, Базы данных, 5>; <Крылов, Базы данных, 3>; <Крылов, Базы данных, 4>; <Крылов, Базы данных, 5>; <Степанов, Базы данных, 3>; <Степанов, Базы данных, 4>; <Степанов, Базы данных, 5>; Отношение R моделирует реальную ситуацию и оно может содержать, допустим, только 5 строк, которые соответствуют результатам сессии (Крылов экзамен по "Базам данных" еще не сдавал): <Иванов, Теория автоматов, 4>; <Крылов, Теория автоматов, 5>; <Степанов, Теория автоматов, 5>; <Иванов, Базы данных, 3>; <Степанов, Базы данных, 4>;

 Отношения Схемой отношения R называется перечень имен атрибутов данного отношения с указанием домена, Отношения Схемой отношения R называется перечень имен атрибутов данного отношения с указанием домена, к которому они относятся: Если атрибуты принимают значения из одного и того же домена, то они называются θ сравнимыми, где θ — множество допустимых операций сравнения, заданных для данного домена. Например, если домен содержит числовые данные, то для него допустимы все операции сравнения, тогда θ = { =, <>, >=, <=, >, <}. Если для домена, содержащего символьные данные, задано лексикографическое упорядочение, то он имеет также полный спектр операций сравнения.

 Отношения Схемы двух отношений называются эквивалентными, если они имеют одинаковую степень и возможно Отношения Схемы двух отношений называются эквивалентными, если они имеют одинаковую степень и возможно такое упорядочение имен атрибутов в схемах, что на одинаковых местах будут находиться сравнимые атрибуты, то есть атрибуты, принимающие значения из одного домена. SR 1 = (A 1, A 2, . . . , An) — схема отношения R 1. SR 2 = (Bi 1, Bi 2, . . . , Bin) — схема отношения R 2 после упорядочения имен атрибутов. Тогда: 1. n = m, SR 1 ~ SR 2 2. Aj , Bij Dj Для поддержки связей в отношениях существуют первичный ключ (PRIMARY KEY), который однозначно определяет кортеж основного отношения, и внешний ключ (FOREIGN KEY), определяющий множество кортежей подчинённого отношения, которые связаны с единственным кортежем основного отношения.

 PRIMARY KEY и FOREIGN KEY Рассмотрим ситуацию, когда надо описать карьеру некоторого человека, PRIMARY KEY и FOREIGN KEY Рассмотрим ситуацию, когда надо описать карьеру некоторого человека, который в своей трудовой деятельности сменяет несколько мест работы в разных организациях, где он работает в разных должностях. Тогда нужно создать два отношения: одно для моделирования всех работающих людей, а другое для моделирования записей в их трудовых книжках. Связь между основным и подчиненным отношениями: Атрибут Паспорт PRIMARY KEY отношения Сотрудник. Для отношения Карьера атрибут Паспорт FOREIGN KEY.

 Данные в таблицах удовлетворяют следующим принципам: 1. Каждое значение, содержащееся на пересечении строки Данные в таблицах удовлетворяют следующим принципам: 1. Каждое значение, содержащееся на пересечении строки и столбца, должно быть атомарным. 2. Значения данных в одном и том же столбце должны принадлежать к одному и тому же типу, доступному для использования в данной СУБД. 3. Каждая запись в таблице уникальна, то есть в таблице не существует двух записей с полностью совпадающим набором значений ее полей. 4. Каждое поле имеет уникальное имя. 5. Последовательность полей в таблице несущественна. 6. Последовательность записей в таблице несущественна.

 Реляционная модель данных Достоинство реляционной модели данных заключается в простоте, понятности и удобстве Реляционная модель данных Достоинство реляционной модели данных заключается в простоте, понятности и удобстве физической реализации на ЭВМ. Именно простота и понятность для пользователя явились основной причиной ее широкого использования. К основным недостаткам реляционной модели относятся отсутствие стандартных средств идентификации отдельных записей и сложность описания не иерархических и сетевых связей. Примерами зарубежных реляционных СУБД для ПЭВМ являются: MS SQL Server, Oracle, DB 2, Paradox, Fox. Pro, Access, Clarion, Ingres. К отечественным СУБД реляционного типа относятся системы ПАЛЬМА и Hy. Tech.

Операции над отношениями. Реляционная алгебра Алгеброй называется множество объектов с заданной на нем совокупностью Операции над отношениями. Реляционная алгебра Алгеброй называется множество объектов с заданной на нем совокупностью операций, замкнутых относительно этого множества, называемого основным множеством. Основным множеством в реляционной алгебре является множество отношений. Всего Э. Ф. Коддом было предложено 8 операций. Все множество операций можно разделить на две группы: 1. теоретико-множественные операции: Ø Объединение Ø Пересечение бинарные операции Ø Разность Ø Расширенное декартово произведение. 2. специальные операции: Ø Горизонтальный выбор или операция фильтрации Ø Вертикальный выбор или операция проектирования Ø Операция условного соединения Ø Операция деления.

Теоретико множественные операции Пусть заданы два отношения R 1 = { r 1 } Теоретико множественные операции Пусть заданы два отношения R 1 = { r 1 } , R 2 = { r 2 }, где r 1 и r 2 соответственно кортежи отношений R 1 и R 2. Ø Объединением (Union) двух отношений называется отношение, содержащее множество кортежей, принадлежащих либо первому, либо второму исходным отношениям, либо обоим отношениям одновременно: R 1 R 2 = { r | r R 1 ⋁ r R 2 }, здесь r — кортеж нового отношения, ⋁ операция логического сложения «ИЛИ» . Ø Пересечением (Intersect) отношений называется отношение, которое содержит множество кортежей, принадлежащих одновременно и первому и второму отношениям R 1 и R 2: R 3 = R 1 R 2 ={ r | r R 1 ⋀ r R 2 }, здесь ⋀ операция логического умножения «И» .

Теоретико множественные операции Ø Разностью отношений (Minus) R 1 и R 2 называется отношение, Теоретико множественные операции Ø Разностью отношений (Minus) R 1 и R 2 называется отношение, содержащее множество кортежей, принадлежащих R 1 и не принадлежащих R 2 и наоборот: R 4 = R 1 R 2 = { r | r R 1 ⋀ r R 2 }, R 5 = R 2 R 1 = { r | r R 2 ⋀ r R 1 }. Операции объединение и пересечение явля ются коммутативными операциями, то есть результат операции не зависит от порядка аргументов в операции. Операция разности – несимметричная операцией. Операции объединения, пересечения и разности применимы только к отношениям с эквивалентными схемами. Ø Расширенное декартово произведение (Times). Эта операция не накладывает никаких дополнительных условий на схемы исходных отношений, => операция R 1 ⊗ R 2 допустима для любых двух отношений.

Теоретико множественные операции Введем дополнительно понятие: cцеплением или конкатенацией кортежей с = <c 1, Теоретико множественные операции Введем дополнительно понятие: cцеплением или конкатенацией кортежей с = и q = называется кортеж, полученный добавлением значений второго в конец первого. Сцепление кортежей с и q обозначается как (с , q): (с, q) = < c 1, c 2, . . . , сn, q 1, q 2 … qm >. Здесь n — число элементов в первом кортеже с, m — число элементов во втором кортеже q. Операция декартова произведения меняет степень результирующего отношения.

Теоретико множественные операции Ø Расширенным декартовым произведением отношения R 1 степени n, со схемой Теоретико множественные операции Ø Расширенным декартовым произведением отношения R 1 степени n, со схемой SR 1 = (A 1, А 2, …, Аn) и отношения R 2 степени m, со схемой SR 2 = (B 1, B 2 , …, Bm) называется отношение R 3 степени n+m со схемой SR 3 = (A 1, А 2, …, Аn, B 1, B 2 , …, Bm), содержащее кортежи, полученные сцеплением каждого кортежа r отношения R 1 с каждым кортежем q отношения R 2. То есть, если R 1= { r }, R 2 = { q }, то R 1 ⊗ R 2 = {(r, q) | r R 1 ⋀ q R 2 } Операцию декартова произведения с учетом возможности перестановки атрибутов в отношении можно считать симметричной.

Специальные операции реляционной алгебры Ø Операция выбора (Select) или операция фильтрации – это унарная Специальные операции реляционной алгебры Ø Операция выбора (Select) или операция фильтрации – это унарная операция над отношением с использованием предикатов. Операция, задана на отношении R в виде булевского выражения, определенного на атрибутах отношения R. Результат операции – это отношение R[α(r)] , включающее те кортежи из исходного отношения, для которых истинно условие выбора: R[α(r)] = {r | r R ⋀ α(r) = “Истина”} Например: R 2 = R [ Вес детали < 140]

Специальные операции реляционной алгебры Ø Операция проектирования (Project) или вертикального выбора называется отношение R[B] Специальные операции реляционной алгебры Ø Операция проектирования (Project) или вертикального выбора называется отношение R[B] со схемой, соответствующей набору атрибутов B, содержащему кортежи, полученные из кортежей исходного отношения R путем удаления из них значений, не принадлежащих атрибутам из набора B. Это также унарная операция над отношением. Но если операция выбора выбирает подмножество строк в отношении, то операция проекции выбирает подмножество столбцов. Ø Операция соединения (Join) является бинарной, исходными для нее являются два отношения, а результатом одно. Т. е. соединение является комбинацией двух отношений, имеющих общее значение для одного или нескольких общих атрибутов этих двух отношений.

Пример: Проекция π на основе отношения «варианты» показывает, какие пилоты могут быть использо ваны Пример: Проекция π на основе отношения «варианты» показывает, какие пилоты могут быть использо ваны для каждого рейса.

Специальные операции реляционной алгебры Ø Операция деления (Divide) возвращает отношение, содержащее все значения одного Специальные операции реляционной алгебры Ø Операция деления (Divide) возвращает отношение, содержащее все значения одного атрибута отношения, которые соответствуют (в другом атрибуте) всем значениям во втором отношении. Операция деления достаточна сложна, но имеет применения в некоторых естественных ситуациях. Пример:

Операция деления Предположим, что требуется найти тех пилотов, которые имеют право управлять всеми типами Операция деления Предположим, что требуется найти тех пилотов, которые имеют право управлять всеми типами самолётов из некоторого множества. Пусть q(ТИП САМОЛЁТА) и s(ТИП САМОЛЁТА) следующие: Деление может использоваться для сбора информации о пилотах, имеющих право управлять самолётами из множеств q или s.

Нормализация и нормальные формы Рассмотрим отношение: N студента Код предмета N преподавателя Курс 1899 Нормализация и нормальные формы Рассмотрим отношение: N студента Код предмета N преподавателя Курс 1899 477 2888 2 1899 376 3999 2 2991 410 2888 3 1777 477 2888 3 Аномалии: Ø Вставки – нужно добавить новый курс и преподавателя. Нельзя, пока не будут записан хотя бы один студент. Ø Удаления – при удалении предмета 410 будет удалён и студент 2991. Ø Обновления – изменения N преподавателя для кода предмета 477 придётся делать два раза.

Нормализация – это процесс создания отношений, в которых отсутствуют недостатки плохой реляционной структуры. Для Нормализация – это процесс создания отношений, в которых отсутствуют недостатки плохой реляционной структуры. Для достижения нормализации есть два способа: Ø Первый — начать работу с ER диаграммы. Если диаграмма построена правильно, можно с помощью нескольких простых правил преобразовать ее в отношения, избежав при этом большинства проблем, свойственных реляционному проектированию. Недостатком такого подхода является возможная трудность определения правильности структуры. Ø Второй — воспользоваться для создания отношений теоретическими концепциями построения корректного проекта. Это несколько сложнее, чем работа с ER диаграммой, но часто приводит к разработке лучшей структуры. На практике может оказаться полезным использование комбинации обоих подходов.

Нормальные формы Теоретические правила, которым отвечает структура отношения, называются нормальными формами (normal forms). С Нормальные формы Теоретические правила, которым отвечает структура отношения, называются нормальными формами (normal forms). С возрастанием порядкового номера нормальной формы набор правил постоянно усложняется. В теории, чем выше номер нормальной формы, тем лучше структура отношения. В теории реляционных БД обычно выделяется следующая последовательность нормальных форм: Ø первая нормальная форма (1 NF); Ø вторая нормальная форма (2 NF); Ø третья нормальная форма (3 NF); Ø нормальная форма Бойса Кодда (BCNF); Ø четвертая нормальная форма (4 NF); Ø пятая нормальная форма, или нормальная форма проекции соединения (5 NF или PJ/NF).

Нормальные формы В большинстве случаев, если можно установить соответствие отношений третьей нормальной форме (3 Нормальные формы В большинстве случаев, если можно установить соответствие отношений третьей нормальной форме (3 NF), удастся избежать многих проблем, присущих плохим реляционным проектам. Нормальная форма Бойса Кодда (BCNF) и 4 NF используются в особых ситуациях. 5 NF очень сложна и, как правило, используется очень редко. 1. Каждая следующая нормальная форма в некотором смысле лучше предыдущей; 2. При переходе к следующей NF свойства предыдущих нормальных форм сохраняются. Метод нормализации заключается в декомпозиции отношения, находящегося в предыдущей NF, в два или более отношения, удовлетворяющих требованиям следующей NF.

Функциональная и транзитивная зависимости Функциональная зависимость – в отношении R атрибут Y функционально зависит Функциональная и транзитивная зависимости Функциональная зависимость – в отношении R атрибут Y функционально зависит от атрибута Х в том и только в том случае, если каждому значению Х соответствует в точности одно значение Y: R. Х R. Y Полная функциональная зависимость – функциональная зависимость R. Х R. Y называется полной, если атрибут Y не зависит функционально от любого точного подмножества Х (точным подмножеством множества Х называется любое его подмножество, не совпадающее с X). Транзитивная зависимость – зависимость R. Х R. Y называется транзитивной, если существует такой атрибут Z, что имеются функциональные зависимости R. Х R. Z и R. Z R. Y и отсутствует функциональная зависимость R. Z R. X.

1 NF Все атрибуты отношения простые (далее неделимые), т. е. все строки содержат не 1 NF Все атрибуты отношения простые (далее неделимые), т. е. все строки содержат не более одного значения в каждом столбце. 2 NF Отношение R находится во второй нормальной форме (2 NF) в том и только в том случае, когда оно находится в 1 NF, и каждый неключевой атрибут полностью зависит от первичного ключа. Нарушения 2 NF (на примере отношения Снабжение): 1. Не можем ввести сведения о поставщике, пока он не поставит некоторое изделие. 2. Удаление записи с N поставщика приведёт к удалению всех сведений о нём. 3. При изменении сведений о поставщике, необходимо проверить каждую запись на содержание в ней ключа этого поставщика.

2 NF Дано отношение, не являющееся отношением во 2 NF: Снабжение (N поставщика, N 2 NF Дано отношение, не являющееся отношением во 2 NF: Снабжение (N поставщика, N изделия, имя_поставщика, сведения_о_поставщике, цена) Составной ключ N поставщика, N изделия Для достижения 2 NF, производим декомпозицию:

3 NF Отношение R находится в третьей нормальной форме (3 NF) в том и 3 NF Отношение R находится в третьей нормальной форме (3 NF) в том и только в том случае, когда оно находится во 2 NF, и каждый неключевой атрибут зависит только от первичного ключа, т. е. исключаются транзитивные зависимости. Нарушения 3 NF (на примере отношения Служащий): 1. До привлечения конкретного служащего к работе, дату окончания проекта некуда было записывать. 2. Если бы вдруг все служащие прекратили работу над данным проектом и были бы удалены из БД, тогда в БД были бы уничтожены все сведения о дате окончания проекта. 3. Изменение даты окончания проекта приводит к необходимости поиска всех записей, содержащих эту дату, и их модификации.

3 NF Дано отношение, не являющееся отношением в 3 NF: Служащий (N служащего, имя_служащего, 3 NF Дано отношение, не являющееся отношением в 3 NF: Служащий (N служащего, имя_служащего, зарплата, N проекта, дата_окончания) Исключаем транзитивную зависимость, разделяя исходное отношение на два отношения:

BCNF (форма Бойса Кодда) Форма Бойса Кодда улучшает 3 NF, исключая ситуации, которые возникают BCNF (форма Бойса Кодда) Форма Бойса Кодда улучшает 3 NF, исключая ситуации, которые возникают при наличии нескольких возможных ключей с перекрывающимися компонентами. BCNF требует разделения избыточных ключей. Нормальные отношения высших порядков уже связаны не с функциональными зависимостями, а отражают более тонкие вопросы предметной области. Реляционная база данных эффективна, если все ее отношения находятся как минимум в 3 NF, а предпочтительнее — в BCNF.

Примеры Рассмотрим отношение: S (Ns, FIO, Ngr, Addr, Tel), каждый атрибут FIO, Ngr, Addr, Примеры Рассмотрим отношение: S (Ns, FIO, Ngr, Addr, Tel), каждый атрибут FIO, Ngr, Addr, Tel функционально зависит от Ns. FIO A → B или Ngr S. A → S. B Ns Addr A Tel B Выявление функциональных зависимостей является существенной частью понимания семантики данных. Ns Отношение S_P (Ns, Np, Ball) Ball функционально зависит от Nр совокупности атрибутов Ns и Np. А В

 Отношение STUD (Ns, FIO, Ngr, Addr, Tel, Np, Ball) находится в 1 NF. Отношение STUD (Ns, FIO, Ngr, Addr, Tel, Np, Ball) находится в 1 NF. Ключ составной (Ns, Np). Атрибуты FIO, Ngr, Addr, Tel не находятся в полной функциональной зависимости от ключа (Ns, Np), они функционально зависят от части ключа. Преобразуем STUD в два отношения: S (Ns, FIO, Ngr, Addr, Tel) S_P (Ns, Np, Ball) Отношение SS (Ns, FIO, Ngr, Spec, Addr, Tel) Spec – специальность, которая определяется конкретной группой. Spec транзитивно зависит от Ns, информация о специальности будет храниться только тогда, когда в группе будет хотя бы один студент. Кроме того, специальность дублируется для всех студентов в группе. Ns Ngr, Ngr Spec, Spec транзитивно зависит от Ns. S (Ns, FIO, Ngr, Addr, Tel) Spec_S (Ngr, Spec)

3 NF Дано отношение, не являющееся отношением в 3 NF: Служащий (N служащего, имя_служащего, 3 NF Дано отношение, не являющееся отношением в 3 NF: Служащий (N служащего, имя_служащего, зарплата, N проекта, дата_окончания) N служащего * имя_служащего зарплата N проекта дата_окончания