Скачать презентацию Составляющие реляционной модели Реляционная модель определяет не только Скачать презентацию Составляющие реляционной модели Реляционная модель определяет не только

Базы данных_Лекц3-14.ppt

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

Составляющие реляционной модели Реляционная модель определяет не только принципы хранения данных, но и способы Составляющие реляционной модели Реляционная модель определяет не только принципы хранения данных, но и способы их обработки. Реляционная модель состоит из трех частей: n n n структурной, целостной, манипуляционной. В основу манипуляционной части модели положена теория множеств. Отношение – это множество, поэтому средства манипулирования отношениями могут базироваться на традиционных теоретикомножественных операциях, дополненных некоторыми операциями, специфичными для БД 1

Набор операций манипуляционной составляющей реляционной модели Содержит восемь операций, которые делятся на два класса: Набор операций манипуляционной составляющей реляционной модели Содержит восемь операций, которые делятся на два класса: n теоретико-множественные операции: q q n объединение, пересечение, разность, декартово произведение специальные реляционные операции: селекция, q проекция, q соединение, q деление В состав реляционной алгебры включаются также операции q присваивания и переименования атрибутов 2

Свойства теоретико-множественных операций реляционной алгебры n n Операции объединения, пересечения и разности имеют смысл Свойства теоретико-множественных операций реляционной алгебры n n Операции объединения, пересечения и разности имеют смысл не для любых двух множеств. Поскольку результат каждой из них отношение (множество однотипных строк), то операндами д. б. отношения с совместимыми, схемами. Отношенияоперанды должны иметь: q одинаковую степень q одинаковые типы соответствующих атрибутов q имена атрибутов могут отличаться, тогда после переименования можно выполнить основную операцию Для операции декартово произведение надо, чтобы заголовки столбцов, были разными Все четыре операции: объединение, пересечение, разность и декартово произведение являются ассоциативными. (А # В) # С = А # (В # С) = А # В # С, где А, В и С - отношения, # - любая операция Все операции, кроме разности, коммутативны. А#В=В#А 3

Пример выполнения операции “объединение” Объединение. R 3 = R 1 R 2 Абитуриенты – Пример выполнения операции “объединение” Объединение. R 3 = R 1 R 2 Абитуриенты – победители олимпиады ( R 1 ) Абитуриенты, прошедшие по конкурсу на основании баллов ЕГЭ (R 2) Абитуриенты, зачисленные в университет (R 3) Фамилия № школы Иванов 30 Алексеев 47 Иванов 30 Петров 239 45 30 Петров Иванов 45 56 45 Петров Сидоров 56 Сидоров 47 Алексеев 47 Степанов 239 Сидоров 47 Степанов 239 Основанием для зачисления в университет является победа в олимпиаде, либо достаточно высокий балл ЕГЭ 4

Пример выполнения операции “пересечение” Пересечение. R 3 = R 1 R 2 Абитуриенты – Пример выполнения операции “пересечение” Пересечение. R 3 = R 1 R 2 Абитуриенты – победители олимпиады ( R 1 ) Абитуриенты, прошедшие по конкурсу на основании баллов ЕГЭ (R 2) Абитуриенты, зачисленные в университет по двум показателям (R 3) Фамилия № школы Иванов 30 Алексеев 47 Иванов 30 Петров 239 45 45 30 Петров Иванов Сидоров 56 Петров 45 Сидоров 47 Степанов 239 5

Пример выполнения операции “разность” Разность. R 3 = R 1  R 2 Абитуриенты Пример выполнения операции “разность” Разность. R 3 = R 1 R 2 Абитуриенты – победители олимпиады ( R 1 ) Абитуриенты, прошедшие по конкурсу на основании баллов ЕГЭ (R 2) Абитуриенты, зачисленные в университет только по рез-там олимпиады (R 3) Фамилия № школы Иванов 30 Алексеев 47 Петров 239 56 45 30 Сидоров Петров Иванов Сидоров 56 Петров 45 Сидоров 47 Степанов 239 6

Пример выполнения операции “декартово произведение” Декартово произведение. R 3 = R 1 R 2 Пример выполнения операции “декартово произведение” Декартово произведение. R 3 = R 1 R 2 Отношения R 1 R 2 должны иметь разные схемы. Степень отношения R 3 равна сумме степеней отношений - операндов, а мощность – произведению их мощностей. Если имена столбцов отношений R 1 и R 2 частично перекрываются, их следует переименовать. Студенты ( R 1 ) Экзамены (R 2) № зачетки Фамилия Предмет Дата 12539 Иванов информатика 14. 01. 2003 10642 Петров 11560 Сидоров история 23. 01. 2003 Экзаменационная ведомость без оценки (R 3) № зачетки Фамилия Предмет Дата 12539 Иванов информатика 14. 01. 2003 12539 Иванов история 23. 01. 2003 10642 Петров информатика 14. 01. 2003 10642 Петров история 23. 01. 2003 11560 Сидоров информатика 14. 01. 2003 11560 Сидоров история 23. 01. 2003 7

Пример выполнения операции “деление” Деление. R 3 = R 1 R 2 Отношение – Пример выполнения операции “деление” Деление. R 3 = R 1 R 2 Отношение – делимое должно содержать подмножество атрибутов отношения – делителя. Результирующее отношение содержит только те атрибуты делимого, которые отсутствуют в делителе. В него включаются только те кортежи, для которых соответствующие значения из делимого включают все значения из делителя. Экзаменационная ведомость с измененными данными (R 1) Предмет Экзамены (R 2) № зачетки Фамилия Дата 12539 Иванов информатика 14. 01. 2003 12539 Иванов история 23. 01. 2003 10642 Петров информатика Петров история Сидоров информатика Сидоров история 14. 01. 2003 история 12539 Иванов 15. 01. 2003 11560 информатика Фамилия 25. 01. 2003 11560 Дата № зачетки 14. 01. 2003 10642 Предмет Студенты, вовремя сдавшие все экзамены ( R 3 ) 23. 01. 2003 20. 01. 2003 8

Пример выполнения операции “проекция” Проекция. R 2 = i 1 i 2… in (R Пример выполнения операции “проекция” Проекция. R 2 = i 1 i 2… in (R 1) Операция выполняется над одним отношением на некоторые его атрибуты. Результирующее отношение включает ту часть атрибутов исходного отношения, на которые выполняется проекция Даты сдачи студентами экзаменов по всем предметам (R 2) Экзаменационная ведомость без оценки с измененными данными (R 1) № зачетки Фамилия Предмет Дата 12539 Иванов информатика 14. 01. 2003 12539 Иванов история 23. 01. 2003 10642 Петров информатика 14. 01. 2003 10642 Петров история 25. 01. 2003 11560 Сидоров информатика 15. 01. 2003 11560 Сидоров история 20. 01. 2003 Предмет Дата информатика 14. 01. 2003 история 23. 01. 2003 история 25. 01. 2003 информатика 15. 01. 2003 история 20. 01. 2003 Результат операции 3 4 (R 1) 9

Пример выполнения операции “селекция” Селекция (выбор). R 2 = F (R 1), где F Пример выполнения операции “селекция” Селекция (выбор). R 2 = F (R 1), где F – условие Операция выполняется над одним отношением. Результирующее отношение R 2 содержит строки отношения R 1, выбранные по некоторому заданному с помощью F признаку. Например, применение операции выбора по условию №школы = “ 239” к отношению «Абитуриенты, зачисленные в университет» даст отношение “Абитуриенты из 239 школы” Абитуриенты, зачисленные в университет (R 1) Фамилия № школы Абитуриенты из 239 школы (R 2) Фамилия № школы Иванов 30 Петров 239 Степанов 239 Петров 45 Сидоров 56 Алексеев 47 Сидоров 47 Степанов 239 10

Пример выполнения операции “соединение” Соединение. R 3 = R 1⊳ iθj⊲ R 2, где Пример выполнения операции “соединение” Соединение. R 3 = R 1⊳ iθj⊲ R 2, где R 1, R 2 – исходные отношения, R 3 – результирующее отношение, i – атрибут отношения R 1, j – атрибут отношения R 2, θ – оператор сравнения. (=, <, >, <=, >=) Если θ – это равенство (=), то операция называется эквисоединением Отношения R 1 и R 2 должны иметь разные схемы. Абитуриенты ( R 1 ) № рег. Фамилия Балл 125 Иванов 285 106 Петров 270 115 Сидоров R 3 = R 1⊳ 260 Направления, на которые м. б. зачислены абитуриенты (R 3) Проходные баллы (R 2) Направление Прох. балл № рег. Фамилия Балл Направление Прох. балл 230401 280 125 Иванов 285 230401 280 230105 270 125 Иванов 285 230105 270 106 Петров 270 230105 270 Балл >= Прох. балл⊲R 2 11

Частный случай операции “соединение” – “естественное соединение” Естественное соединение. R 3 = R 1 Частный случай операции “соединение” – “естественное соединение” Естественное соединение. R 3 = R 1 ⊳ ⊲R 2. Отношения R 1 и R 2 должны иметь в своем составе одинаковые атрибуты. Отношение R 3 включает все атрибуты, как первого, так и второго отношения, одинаковые атрибуты не дублируются. В отношение R 3 включаются только строки, в которых значения одинаковых атрибутов отношений R 1 и R 2 равны. Дни рождения студентов ( R 1) Дни экзаменов( R 2) № зачетки Фамилия День Предмет День 12539 Иванов 05. 08 Информатика 07. 01 10642 Петров 10. 01 Физика 10. 01 11560 Сидоров 07. 01 Математика 18. 01 Иностр. язык 25. 01 Студенты, родившиеся в день сдачи одного из экзаменов ( R 3) № зачетки Фамилия Предмет День 10642 Петров Физика 10. 01 11560 Сидоров Информатика 07. 01 12

Цели проектирования баз данных n n Обеспечение возможности хранения в базе данных всех необходимых Цели проектирования баз данных n n Обеспечение возможности хранения в базе данных всех необходимых данных. Исключение избыточности данных. Сведение к минимуму количества хранимых в базе данных отношений. Нормализация отношения для упрощения проблем, связанных с модификацией данных. 13

Избыточное дублирование ФИО преподавателя Название кафедры Телефон кафедры Герасимов И. В. САПР 341 Куприянов Избыточное дублирование ФИО преподавателя Название кафедры Телефон кафедры Герасимов И. В. САПР 341 Куприянов М. С. ВТ 345 Опалева Э. А. МО ЭВМ 346 Соколов Ю. М. САПР 341 Фомичева Т. Г. МО ЭВМ 346 Преподаватели ФИО преподавателя Название кафедры Герасимов И. В. САПР Куприянов М. С. ВТ Опалева Э. А. 341 ВТ 345 МО ЭВМ 346 САПР Фомичева Т. Г. САПР МО ЭВМ Соколов Ю. М. Кафедра МО ЭВМ 14

Постановка задачи создания БД “Библиотека” Пусть требуется создать БД для библиотекаря. В БД должны Постановка задачи создания БД “Библиотека” Пусть требуется создать БД для библиотекаря. В БД должны храниться сведения о книгах, имеющихся в библиотеке, о читателях и о том, какие книги на текущий момент находятся на руках у каждого читателя. n Сведения о книге состоят из ее шифра – Шифр, Названия книги – Назв, автора или авторов книги – Авт, Года издания – Год, количества экземпляров, имеющихся в библиотеке – Экз. n Сведения о читателе – это Фамилия и инициалы читателя – ФИО, номер его читательского билета - Билет, номер контактного телефона – Тел. n Кроме того, известны даты закрепления книг за читателями – Дата. Атрибут дата относится в равной мере как к книге, так и к читателю. Попытаемся поместить все эти данные в одно отношение. 15

Универсальное отношение “Библиотека” Билет ФИО Тел Шифр Назв Авт Год Экз Дата 123 Иванов Универсальное отношение “Библиотека” Билет ФИО Тел Шифр Назв Авт Год Экз Дата 123 Иванов И. И. 238 -80 -01 Ч-15 Чайка Чехов А. 1938 15 15. 01. 02 123 Иванов И. И. 238 -80 -01 Т-2 Воскресенье Толстой Л. . 1959 7 15. 01. 02 123 Иванов И. И. 238 -80 -01 Д-21 Идиот Достоевский Ф. 1970 3 20. 03. 02 546 Петров П. П. 215 -18 -04 ТА-12 Аэлита Толстой А. 1976 8 16. 02 546 Петров П. П. 215 -18 -04 ТА-8 Петр I Толстой А. 1948 2 25. 02 108 Сидоров С. С. 115 -13 -40 200 Панов П. П. 215 -20 -02 205 Ким А. А. 110 -11 -22 Б-111 Собачье сердце Булгаков М. 1970 20 К-112 Поединок Куприн А. 1972 10 16

Проблемы, связанные с использованием универсального отношения n Аномалия обновления. n Аномалия удаления. Нельзя удалить Проблемы, связанные с использованием универсального отношения n Аномалия обновления. n Аномалия удаления. Нельзя удалить целиком первую запись, если Если у Петрова изменится номер телефона, то потребуется внести изменения в 2 записи, а если номер телефона изменится у Иванова, то в 3. Иванов сдал книгу «Чайка» , так как. в этом случае мы потеряем информацию об этой книге. Можно заменить пустыми значения полей Билет, ФИО и Тел. Но так сделать можно только в случае, если Иванов брал и другие книги, в противном случае Иванов исчезнет из списка читателей библиотеки. Таким образом, операция, связанная с возвратом книги, выполняется по-разному в зависимости от данных, содержащихся в таблице. n Аномалия добавления. Пусть Сидоров взял книгу Толстого «Воскресенье» . Нельзя просто добавить соответствующую строку в БД, поскольку сведения о Сидорове уже есть в БД, но есть и информация о книге «Воскресенье» , так как ее уже раньше взял Иванов. Тем не менее придется приписать информацию о книге к строке с информацией о Сидорове. Если бы книгу никто не брал, то две отдельные неполные записи о книге «Воскресенье» и о читателе Сидорове пришлось бы заменить одной, добавив значение поля Дата. 108 Сидоров С. С. 115 -13 -40 Т-2 Воскресенье Толстой Л. 1959 7 20. 04. 02 17

Функциональные зависимости (ФЗ) между атрибутами отношения Определение ФЗ. Пусть имеются два атрибута: А и Функциональные зависимости (ФЗ) между атрибутами отношения Определение ФЗ. Пусть имеются два атрибута: А и В. Если в любой момент времени каждому значению А соответствует не более чем одно значение В, то В функционально зависит от А. А и В при этом могут быть и составными атрибутами, то есть состоять из совокупности полей. Функциональная зависимость атрибута В от атрибута А в математической форме обозначается как А → В, а в графической - 18

Функциональные зависимости между атрибутами отношения «Библиотека» Диаграмма ФЗ Математическая форма представления ФЗ 1. 2. Функциональные зависимости между атрибутами отношения «Библиотека» Диаграмма ФЗ Математическая форма представления ФЗ 1. 2. 3. 4. 5. 6. 7. Шифр → Авт Шифр → Назв Шифр → Год Шифр → Экз Билет → ФИО Билет→ Тел Шифр, Билет → Дата 19

Нормальная форма Бойса – Кодда (НФБК) Определение. Отношение находится в НФБК, если каждый детерминант Нормальная форма Бойса – Кодда (НФБК) Определение. Отношение находится в НФБК, если каждый детерминант отношения является его возможным ключом. При этом А представляет собой детерминант В, если В функционально зависит от А и не зависит от любого подмножества А. Отношение «Библиотека» не находится в НФБК, т. к. • Ключом отношения является набор атрибутов (Шифр, Билет). • Детерминантами отношения являются атрибуты Шифр, Билет и составной атрибут (Шифр, Билет). Отношение «Библиотека» следует подвергнуть декомпозиции. 20

Декомпозиция без потерь при естественном соединении Пусть имеем отношение R (A, B, C, D, Декомпозиция без потерь при естественном соединении Пусть имеем отношение R (A, B, C, D, E, …). Атрибут А - первичный ключ отношения, от него функционально зависят все остальные атрибуты. Кроме того, существует ФЗ C D, наличие которой мешает отношению R находиться в НФБК, так как С, являясь детерминантом отношения, не является его ключом. Следует разбить отношение R на два: R 1 (C, D) и R 2 (A, B, C, E, …). Отношение R 1 является проекцией отношения R. Атрибуты функциональной зависимости, на которую выполняется проекция, переходят в новое отношение, при этом атрибут (совокупность атрибутов) левой части остается и в исходном отношении. 21