Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 12 лет назад пользователемits.kpi.ua
1 Реляционная модель. Реляционная алгебра и реляционное исчисление
2 Рассматриваемые вопросы: 1.Реляционная модель - Краткий обзор истории реляционной модели - Используемая терминология - Альтернативная терминология - Математические отношения - Отношения и их свойства в базе данных - Реляционные ключи - Представление схем в реляционной базе данных - Реляционная целостность 2.Реляционные языки 3.Реляционная алгебра - Унарные операции реляционной алгебры - Операции с множествами - Операции соединения - Деление 4.Реляционное исчисление - Реляционное исчисление кортежей - Реляционное исчисление доменов 5.Другие языки
3 Реляционная модель Структура обработки информации в реляционной БД Реляционная алгебра Данные Реляционная модель данных Реляционная БД SQL- стандартный язык запросов
4 Реляционная модель Цели создания реляционной модели: 1) Обеспечение высокой степени независимости от данных. 2) Нормализация отношений, т.е. создание отношений без повторяющихся групп. 3) Расширение языков управления данными за счет включения операций над множествами.
5 Реляционная модель Используемая терминология По сколько Кодд, будучи опытным математиком, широко использовал математическую терминологию теории множеств и логики предикатов. Реляционная модель основана на математическом понятии отношения, физическим представлением которого является таблица.
6 Используемая терминология Структура реляционных данных Отношение Атрибут Домен Кардинальность Кортеж Степень отношения Таблицы данных Реляционная база данных
7 Используемая терминология Номер ФамилияОценка 6 Иванов5 17 Петров4 19 Сидоров4.5 ОТНОШЕНИЕОТНОШЕНИЕ С Т Е П Е Н Ь КАРДИНАЛЬНОСТЬКАРДИНАЛЬНОСТЬ АТРИБУТЫ КОРТЕЖ Структура реляционных данных
8 Используемая терминология Отношение - это плоская таблица (двумерная), состоящая из столбцов и строк. Атрибут - это поименованный столбец отношения. Домен - это набор допустимых значений для одного или нескольких атрибутов, благодаря ему пользователь может централизованно определять смысл и источник значений, которые могут получать атрибуты. Кортеж - это строка отношения. Кортежи называются расширением, состоянием или телом отношения, которое постоянно меняется. Описание структуры отношения вместе со спецификацией доменов и любыми другими ограничениями возможных значений атрибутов иногда называют его заголовком (или содержанием (intension)).
9 Используемая терминология Степень отношения определяется количеством атрибутов, которое оно содержит. Кардинальность - это количество кортежей, которое содержит отношение. Кардинальность - свойство тела отношения (меняется при каждом добавлении или удалении кортежей ). Реляционная база данных - это набор нормализованных отношений. Реляционная база данных состоит из отношений, структура которых определяется с помощью особых методов, называемых нормализацией.
10 Альтернативная терминология Официальные термины Альтернативный вариант 1 Альтернативный вариант 2 ОтношениеТаблицаФайл КортежСтрокаЗапись АтрибутСтолбецПоле
11 Отношения и их свойства в базе данных Реляционная схема – это имя отношения, за которым следует множество пар атрибутов и доменов. атрибуты А 1, А 2,.... А n реляционная схема: домены D 1, D D n {А1:D1...An:Dn} В реляционной модели отношение можно представить как произвольное подмножество декартового произведения, а таблица – это физическое представление такого отношения.
12 Отношения и их свойства в базе данных Свойства отношений: Отношение имеет неповторимое имя. Каждая ячейка отношения содержит только атомарное (неделимое) значение. Каждый атрибут имеет уникальное имя. Значения атрибута берутся из одного и того же домена. Порядок следования атрибутов не имеет никакого значения. Каждый кортеж является уникальным, т.е. дубликатов кортежей быть не может. Порядок следования кортежей в отношении не имеет никакого значения.
13 Реляционные ключи Суперкпюч (superkey) – атрибут или множество атрибутов, которое единственным образом идентифицирует кортеж данного отношения. Потенциальный ключ – это суперключ, который не содержит подмножества, также являющегося суперключом данного отношения. Потенциальный ключ К для данного отношения R обладает двумя свойствами: Уникальность. В каждом кортеже отношения R значение ключа К единственным образом идентифицируют этот кортеж. Неприводимость. Никакое допустимое подмножество ключа К не обладает свойством уникальности.
14 Реляционные ключи Наличие значений-дубликатов в конкретном существующем наборе кортежей доказывает то, что некоторая комбинация атрибутов не может быть потенциальным ключом. Если ключ состоит из нескольких атрибутов, то он называется составным ключом. Первичный ключ – это потенциальный ключ, который выбран для уникальной идентификации кортежей внутри отношения. Поскольку отношение не содержит кортежей-дубликатов, всегда можно уникальным образом идентифицировать каждую его строку. Это значит, что отношение всегда имеет первичный ключ.
15 Реляционные ключи Потенциальные ключи, которые не выбраны в качестве первичного ключа, называются альтернативными ключами. Внешний ключ – это атрибут или множество атрибутов внутри отношения, которое соответствует потенциальному ключу некоторого (может быть, того же самого) отношения.
16 Представление схем в реляционной базе данных Реляционная база данных может состоять из произвольного количества отношений. Концептуальной моделью, или концептуальной схемой, называется множество всех реляционных баз данных.
17 Реляционная целостность Модель данных имеет две части: - управляющую часть, которая определяет типы допустимых операций с данными, - набор ограничений целостности, которые гарантируют корректность данных. Определитель NULL вводится в связи с поддержанием правил целостности и указывает, что значение атрибута в настоящий момент неизвестно или неприемлемо для этого кортежа. Нули и пробелы представляют собой некоторые значения, тогда как ключевое слово NULL призвано обозначать отсутствие какого-либо значения.
18 Реляционная целостность Целостность сущностей означает, что в отношении ни один атрибут первичного ключа не может содержать отсутствующих значений, обозначаемых определителем NULL. Если будет определителя NULL в любой части первичного ключа, это утверждает, что не все его атрибуты необходимы для уникальной идентификации кортежей. Это противоречит определению первичного ключа.
19 Реляционная целостность Ссылочная целостность. Если в отношении существует внешний ключ, то значение внешнего ключа должно либо соответствовать значению потенциального ключа некоторого кортежа в его базовом отношении, либо задаваться определителем NULL. Корпоративные ограничения целостности данных это дополнительные правила поддержки целостности, определяемые пользователями или администраторами базы данных.
20 Реляционные языки Реляционная алгебра - (высокоуровневый) процедурный язык. Использование: сообщение СУБД о том, как следует построить требуемое отношение на базе одного или нескольких существующих в базе данных отношений. Реляционное исчисление - непроцедурный язык. Использование: определения того, каким будет некоторое отношение, созданное на основе одного или нескольких других отношений базы данных. Реляционно-полный язык Использование: получение любого отношения, которое можно вывести с помощью реляционного исчисления.
21 Реляционная алгебра Реляционная алгебра - теоретический язык операций, который на основе одного или нескольких отношений позволяет создавать другое отношение без изменения самих исходных отношений.
22 Основные операции реляционной алгебры: - выборка (selection) - проекция (рrojection) - декартово произведение (сartesian product) - объединение (union) - разность (set difference) Дополнительные операции: - соединения (join) - пересечения (intersection) - деления (division) Реляционная алгебра
23 Унарные операции реляционной алгебры Операция выборки: Работает с одним отношением R. Определяет результирующее отношение с тем же заголовком, что и отношение R, и телом, состоящим из кортежей, значения атрибутов которых при подстановке в условие (предикат) дают значение истина.
24 Унарные операции реляционной алгебры Простейший случай: X Y - условие (предикат), – один из операторов сравнения (,, и т.д.), X и Y - атрибуты отношения R или скалярные значения. Синтаксис операции выборки: R where, или R where (X Y) Синтаксис на языке SQL: select * from R where (X Y)
25 Унарные операции реляционной алгебры Пример операции выборки Отношение R (информация о студентах) Результат выборки R where Средний бал
26 Унарные операции реляционной алгебры Операция проекции: Работает с одним отношением R. Определяет новое отношение с заголовком (X,…,Z), содержащее вертикальное подмножество отношения R, создаваемое посредством извлечения значений указанных атрибутов из результата строк-дубликатов. Синтаксис операции проекции: R [X,…,Z] Синтаксис на языке SQL: Select X, Y,…, Z from R
27 Унарные операции реляционной алгебры Пример операции проекции Отношение R (информация о преподавателях) Предмет География История Философия Табельный номер Фамилия Предмет 4587БондаренкоГеография 2136ВоронинИстория 5496АнисимоваИстория 5496АнисимоваФилософия Проекция R [Предмет]
28 Операции с множествами Декартово произведение R×S определяет новое отношение, которое является результатом конкатенации (т.е. сцепления) каждого кортежа из отношения R с каждым кортежем из отношения S. Синтаксис операции декартового произведения: R times S Синтаксис на языке SQL : Select * from R, S
29 Номер студентаФамилия 6Иванов 17Петров 19Сидоров Код предметаНазвание 101Физика 102Математика 103Информатика Операции с множествами Пример декартового произведения Отношение R (Студенты) Отношение S (Предметы)
30 Номер студентаФамилияКод предметаНазвание 6Иванов101Физика 6Иванов102Математика 6Иванов103Информатика 17Петров101Физика 17Петров102Математика 17Петров103Информатика 19Сидоров101Физика 19Сидоров102Математика 19Сидоров103Информатика Отношение R TIMES S Операции с множествами
31 Операция объединения R S получается в результате конкатенации R и S, с образованием одного отношения с тем же заголовком, что и у отношений R и S и телом, состоящим из кортежей, принадлежащих или R, или S, или обоим отношениям (с максимальным количеством кортежей), если кортежи-дубликаты исключены. Синтаксис операции объединения: R union S. Синтаксис на языке SQL: (Select * from R) union (select * from S)
32 Номер студента ФамилияСредний балл 6Иванов5 17Петров4 19Сидоров4,5 Номер студента ФамилияСредний балл 6Иванов5 18Пушников3,5 19Сидоров4,5 Операции с множествами Пример операции объединения Отношение R (информация о студентах) Отношение S (информация о студентах)
33 Номер студента Фамилия Средний балл 6Иванов5 17Петров4 19Сидоров4,5 18Пушников3,5 Объединение отношений R и S Операции с множествами
34 Операция разности R-S определяет отношение с тем же заголовком, что и у отношений R и S, и телом, состоящим из кортежей, принадлежащих отношению R и не принадлежащих отношению S, таких, которые имеются в отношении R, но отсутствуют в отношении S. Синтаксис операции разности: R minus S Синтаксис на языке SQL: (select * from R) exept (select * from S)
35 Операции с множествами(щшибка) Пример операции разности Отношение R Номер студента ФамилияСредний балл 6Иванов5 17Петров4 19Сидоров4,5 Отношение S Номер студент ФамилияСредний балл 6Петров4 18Сидоров4,5 20 Пушников3,5
36 Операции с множествами Номер студента Фамилия Средний балл 17Петров4 19Сидоров4,5 Отношение R MINUS S
37 Операции с множествами Операция пересечения RS определяет отношение, которое содержит кортежи, присутствующие как в отношении R, так и в отношении S. Синтаксис операции пересечения: R intersect S Синтаксис на языке SQL: (Select * from R) intersect (select * from S)
38 Операции с множествами Пример операции пересечения Номер студента Фамилия Средний балл 6Иванов5 17Петров4 19Сидоров4,5 Отношение R (информация о студентах) Номер студента ФамилияСредний балл 6Иванов5 18Пушников3,5 20Сидоров4,5 Отношение S (информация о студентах)
39 Номер студента Фамилия Средний балл 6Иванов5 Операции с множествами Отношение R INTERSECT S
40 Операции соединения Операция соединения - комбинация декартового произведения и выборки, эквивалентна операции выборки из декартового произведения двух операндов отношений тех кортежей, которые удовлетворяют условию, указанному в предикате соединения в качестве формулы выборки. Соединением отношений R и S по условию F называется отношение (R times S) where F Синтаксис на языке SQL: Select R.*, S.* from R, S where f
41 Операции соединения Типы операций соединения: - тета-соединение - соединение по эквивалентности (частный случай тета- соединения) - естественное соединение - внешнее соединение - полусоединение
42 Операции соединения Тета-соединение определяет отношение, которое содержит кортежи из декартового произведения отношений R и S, удовлетворяющие предикату F. Предикат F имеет вид, где - один из операторов сравнения (, >=, = или -=). -соединением отношения R по атрибуту X с отношением S по атрибуту Y называют отношение (R times S) where (X Y). Синтаксис на языке SQL: Select * from R, S where (R.X S.Y)
43 Операции соединения Пример тета-соединения В базе данных хранится информация о: - преподавателях; - предметах. Примечание: преподаватели имеют право преподавать предметы, статус которых не выше статуса преподавателя. Табельный номер Фамилия X(Статус преподавателя) 4587Бондаренко4 2136Воронин1 5496Анисимова2 Отношение R (Преподаватели) Код предметаНазваниеY(Статус предмета) 101История3 102География2 103Философия1 Отношение S (Предметы)
44 Операции соединения Ответ на вопрос: Какие преподаватели имеют право преподавать какие предметы?" дает -соединение R[X Y]S: Табельный номер ФамилияX(Статус преподавателя) Код предмета НазваниеY(Статус предмета) 4587Бондаренко4101История3 4587Бондаренко4102География2 4587Бондаренко4103Философия1 2136Воронин1103Философия1 5496Анисимова2102География2 5496Анисимова2103Философия1 Отношение "Какие преподаватели преподают какие предметы?"
45 Операции соединения Экви-соединение (соединение по эквивалентности) - частный случай -соединения, когда есть просто равенство (предикат F содержит только оператор равенства (=)). Синтаксис экви-соединения: R[X=Y]S Синтаксис на языке SQL: select R.*, S.* from R, S where (R.X = S.Y)
46 Операции соединения(Ошибка) Пример экви-соединения Номер студента SNUMФамилия студента SNAME 6Иванов 17Петров 19Сидоров Отношение S (Студенты) Код предмета PCODНазвание предмета PNAME 101Физика 102Математика 103Информатика Отношение P (Предметы)
47 Номер студента SNUM Код предмета PCOD Средний бал по предмету SRBALL 61014, , ,5 Операции соединения Отношение SP (Изучение) Ответ на вопрос: " Какие предметы изучаются студентами?, дает экви- соединение S[SNUM= SNUM]SP. Т.к. в отношениях имеются одинаковые атрибуты, то требуется сначала их переименовать. Получаем: (S rename SNUM as SNUM 1)[SNUM1= SNUM2](SP rename SNUM as SNUM2).
48 Номер студента SNUM1 Фамилия студента SNAME Номер студента SNUM2 Код предмета PCOD Средний балл по предмету SRBALL 6Иванов61014,5 6Иванов Иванов Петров171013,5 17Петров Сидоров191014,5 Операции соединения Отношение "Какие предметы изучаются какими студентами?"
49 Операции соединения Естественное соединене - соединение по эквивалентности двух отношений R и S, выполненное по всем общим атрибутам, из результатов которого исключается по одному экземпляру каждого общего атрибута. Синтаксис естественного соединения: R join S. Естественное соединение производится по всем одинаковым атрибутам.
50 Операции соединения Пример естественного соединения Упрощенная запись: Ответ на вопрос "Какие предметы изучаются какими студентами? в виде естественного соединения трех отношений S join SP join P: Номер студента SNUM Фамилия студента SNAME Код предмета PCOD Название предмета PNAME Средний балл по предмету SRBALL 6Иванов101Физика4,5 6Иванов102Математика4 6Иванов103Информатика5 17Петров101Физика3,5 17Петров102Математика4 19Сидоров101Физика4,5 Отношение S JOIN SP JOIN P
51 Операции соединения Операция внешнего соединения используется при соединении двух отношений, столбцы которых имеют несовпадающие значения. Внешнее соединение : левое и правое. Левое внешнее соединение : кортежи отношения R, не имеющие совпадающих значений в общих столбцах отношения S, также включаются в результирующее отношение. Обозначения отсутствующих значений во втором отношении - определитель NULL.
52 Номер студентаФамилияСредний бал 6Иванов5 17Петров 3 19Сидоров 4 Примечание: студент может принимать участие в олимпиадах по предметам, установленный общий бал которых не больше среднего бала студента. Задание: на основе отношений R и S создать список, в котором указаны студенты и предметы, по которым они учавствуют в олимпиадах. Операции соединения Пример левого внешнего соединения Отношение R
53 Отношение S Код предметаНазваниеОбщий балл 101Физика4,5 102Химия4 Номер студента ФамилияСредний баллКод предмета НазваниеОбщий балл 6Иванов5101Физика4,5 6Иванов5102Химия4 17Петров3NULL 19Сидоров4102Химия4 Таблица ((П (R)) S ) Операции соединения
54 Правое внешнее соединение: в результирующем отношении содержатся все кортежи правого отношения. Полное внешнее соединение: в результирующее отношение помещаются все кортежи из обоих отношений и для обозначения несовпадающих значений кортежей используются определители NULL.
55 Операции соединения Операция полусоединения : определяет отношение, которое содержит те кортежи отношения R, которые входят в соединение отношений R и S. Формулировка операции полусоединения с помощью операторов проекции и соединения : где А - набор всех атрибутов в отношении R.
56 Пример операции полусоединения Номер студента ФамилияСредний баллКод предмета НазваниеОбщий балл 6Иванов5101Физика4,5 6Иванов5102Химия4 19Сидоров4102Химия4 Операции соединения
57 Операция деления Пусть: - отношение R определено на множестве атрибутов А; - отношение S на множестве атрибутов В; - В А; - С=А-В (С является множеством атрибутов отношения R, которые не являются атрибутами отношения S). Результат деления R S - набор кортежей отношения R, определенных на множестве атрибутов С, которые соответствуют комбинации всех кортежей отношения S.
58 Операция деления Пример операции деления Отношение R Номер группы Количество студентов ФИО куратора Код предмета Название предмета ТМ-3120Иванов01Математика ТМ-3222Петров01Математика ТИ-3113Сидоров01Математика ТМ-3120Иванов02Физика ТМ-3222Петров02Физика
59 Отношение S T1:SelectКод предмета, Название предмета from R Операция деления Номер группы Количество студентов ФИО куратора ТМ-3120Иванов ТМ-3222Петров ТИ-3113Сидоров Код предметаНазвание предмета 01Математика 02Физика
60 T21:Select * from T1,S Операция деления Код предмета Название предмета Номер группы Количество студентов ФИО куратора 01МатематикаТМ-3120Иванов 01МатематикаТМ-3222Петров 01МатематикаТИ-3113Сидоров 02ФизикаТМ-3120Иванов 02ФизикаТМ-3222Петров 02ФизикаТИ-3113Сидоров
61 T22: (Select * from T21) exept (Select * from R) T2: Select Код предмета, Название предмета from T22 Операция деления Р=T1-T2 Код предмета Название предмета Номер группы Количество студентов ФИО куратора 02ФизикаТИ-3113Сидоров Код предметаНазвание предмета 02Физика Код предметаНазвание предмета 01Математика
62 Реляционное исчисление Происхождение названия реляционное исчисление: от части символьной логики, которая называется исчислением предикатов. Реляционное исчисление существует в двух формах: - реляционного исчисления кортежей; - реляционного исчисления доменов.
63 Реляционное исчисление Предикат в логике первого порядка истинностная функция с параметрами. Суждение выражение, которое принимает функция после подстановки значений вместо параметров. Суждение: истинное и ложное. Пусть: Р - предикат; х - переменная. Тогда: - множество всех значений х, при которых суждение Р – истина. Предикаты могут соединяться с помощью логических операторов: (AND), (ОR) и (NOT) с образованием составных предикатов.
64 Реляционное исчисление кортежей Задача реляционного исчисления кортежей: нахождение кортежей, для которых предикат является истинным. Исчисление основано на переменных кортежа. Переменными кортежа - переменные, областью определения которых является указанное отношение.
60} Пояснение: Выражение S.количество часов - значение атрибута количество часов для кортежа. Рел" title="Пример Запрос: Выбрать атрибуты склада, адрес,идент. код, дата,ФИО заказчика для заказов с количеством >60" Запись запроса: { S | R( S ) ^ S.количество> 60} Пояснение: Выражение S.количество часов - значение атрибута количество часов для кортежа. Рел" class="link_thumb"> 65 Пример Запрос: Выбрать атрибуты склада, адрес,идент. код, дата,ФИО заказчика для заказов с количеством >60" Запись запроса: { S | R( S ) ^ S.количество> 60} Пояснение: Выражение S.количество часов - значение атрибута количество часов для кортежа. Реляционное исчисление кортежей 60} Пояснение: Выражение S.количество часов - значение атрибута количество часов для кортежа. Рел"> 60} Пояснение: Выражение S.количество часов - значение атрибута количество часов для кортежа. Реляционное исчисление кортежей"> 60} Пояснение: Выражение S.количество часов - значение атрибута количество часов для кортежа. Рел" title="Пример Запрос: Выбрать атрибуты склада, адрес,идент. код, дата,ФИО заказчика для заказов с количеством >60" Запись запроса: { S | R( S ) ^ S.количество> 60} Пояснение: Выражение S.количество часов - значение атрибута количество часов для кортежа. Рел">
66 Два типа кванторов, используемых для указания количества экземпляров, к которым должен быть применен предикат: - квантор существования (символ существует): используется в формуле, которая должна быть истинной хотя бы для одного экземпляра; - квантор общности (символ для всех): используется в выражениях, которые относятся ко всем экземплярам.
67 Пример применения квантора существования Студент (S) ^ {Зв} (Год рождения(B) ^ (В.имя=S.имя) ^ В. группа='ТИ-31') Выражение означает: в отношении Год рождения существует кортеж, который имеет такое же значение атрибута имя, что и значение атрибута имя в текущем кортеже S из отношения Студент, а атрибут группа из кортежа В имеет значение ' ТИ-31 '. Пример применения квантора общности (B) (В.группа * 'ТИ-31') Выражение означает: ни в одном кортеже отношения Год рождения значение атрибута группа не равно 'ТМ-31'. Реляционное исчисление кортежей
68 Свободные переменные - переменные кортежа, которые неквалифицируются кванторами, в противном случае они называются связанными переменными. В реляционном исчислении допустимые формулы – только недвусмысленные и небессмысленные последовательности. Реляционное исчисление кортежей
69 Правила построения формулы в исчислении предикатов: 1. Если Р - n-арная формула (предикат с n аргументами), t1, t2,…, tn - константы или переменные, то Р (t1, t2,…, tn) - правильно построенная формула. 2. Если t и t2 - константы или переменные из одного домена, - один из операторов сравнения (, >=, -=), то t1 t2 - правильно построенная формула. 3. Если F1, F2 - формулы, то F1 F2 - конъюнкция формул, F1 F2 - дизъюнкция, - отрицание. 4. Если F1 - формула со свободной переменной X, то F(Х) и F(Х) - также формулы. Реляционное исчисление кортежей
70 Реляционное исчисление доменов Значения переменных, используемых в реляционном исчислении доменов берутся из доменов, а не из кортежей отношений. Путь: Р(d1, d2,…, dn) - предикат; d1, d2,…, dn - переменные. Тогда:{ d1, d2,…, dn |Р(d1, d2,…, dn)}- множество всех переменных домена, для которых предикат - истина. Выражение R(х,у) - истинное тогда и только тогда, когда в отношении R имеется кортеж со значениями х и у в двух его атрибутах.
71 Пример Найти: имена всех менеджеров, зарплата которых превышает 2500 гривен. {Имя, Фамилия должность, зарплата ( (фамилия,должность,зарплата) должность= менеджер зарплата>2500)} Реляционное исчисление доменов
72 Другие языки Дополнительные категории реляционных языков: - на основе преобразований; - графические языки; - языки четвертого поколения. Языки на основе преобразований - класс непроцедурных языков Используют отношения для преобразования исходных данных к требуемому виду (примеры: SQUARE, SEQUEL и его версии, SQL).
73 Графические языки - рисунок или другое графическое отображение структуры отношения. Пользователь создает некий образец желаемого результата, и система возвращает затребованные данные в указанном формате (пример: QBE). Языки четвертого поколения: - создают полностью готовое и соответствующее требованиям заказчика прикладное приложение с помощью ограниченного набора команд; - предоставляют дружественную по отношению к пользователю среду разработки. Другие языки
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.