Слайд 2
Основные определения
Реляционная модель - множество взаимосвязанных отношений.
В каждой связи одно отношение может выступать как основное,
а другое отношение выступает в роли подчиненного.
Для поддержки этих связей оба отношения должны содержать наборы атрибутов, по которым они связаны.
В основном отношении это первичный ключ отношения (PRIMARY KEY), который однозначно определяет кортеж основного отношения.
В подчиненном отношении для моделирования связи должен присутствовать набор атрибутов, соответствующий первичному ключу основного отношения. Данный набор атрибутов в подчиненном отношении принято называть внешним ключом ( FOREIGN KEY ).
Слайд 3
ОГРАНИЧЕНИЯ ЦЕЛОСТНОСТИ ДАННЫХ
База данных поддерживает следующие виды
ограничений:
1) PRIMARY KEY
2) UNIQUE
3) FOREIGN KEY
4) CHECK,
5) NOT
NULL
Слайд 4
Основные определения
Атрибут Паспорт PRIMARY KEY отношения «Сотрудник»
и FOREIGN KEY для отношения «Карьера".
Слайд 5
Типы связей
Одна сущность может быть связана с другой
сущностью или сама с собою.
Левая сущность (со стороны
"один") называется родительской, правая (со стороны "много") - дочерней.
Слайд 6
В университете учатся студенты Иванов, Петров и Сидоров.
Лекции им читают преподаватели Пушников, Цыганов и Шарипов, причем
известны следующие факты:
Пушников читает лекции по алгебре и базам данных, соответственно, 40 и 80 часов в семестр.
Цыганов читает лекции по геометрии, 50 часов в семестр.
Шарипов читает лекции по алгебре и геометрии, соответственно, 40 и 50 часов в семестр.
Студент Иванов посещает лекции по алгебре у Шарипова и по базам данных у Пушникова.
Студент Петров посещает лекции по алгебре у Пушникова и по геометрии у Цыганова.
Студент Сидоров посещает лекции по геометрии у Цыганова и по базам данных у Пушникова.
Реляционная алгебра
Слайд 7
Множество преподавателей
= {Пушников,
Цыганов, Шарипов}.
Множество предметов
= {Алгебра, Геометрия, Базы данных}.
Множество студентов
= {Иванов, Петров, Сидоров}.
Упорядоченная тройка тогда и только тогда принадлежит отношению , когда преподаватель x читает лекции по предмету y в количестве n часов в семестр.
Реляционная алгебра
Слайд 9
Упорядоченная тройка
, когда студент z посещает
лекции по предмету y у преподавателя x.
Реляционная алгебра
Слайд 11
Потенциальные ключи
Каждый кортеж должен обладать свойством уникальности (свойством
уникальности в пределах отношения могут обладать отдельные атрибуты или
группы атрибутов- потенциальные ключи).
Подмножество атрибутов K отношения R будем называть потенциальным ключом, если выполнено:
Свойство уникальности - в отношении не может быть двух различных кортежей, с одинаковым значением K.
Свойство неизбыточности - никакое подмножество в K не обладает свойством уникальности.
Слайд 12
отношение имеет, по крайней мере, один потенциальный ключ.
если никакой атрибут или группа атрибутов не являются потенциальным
ключом, то, в силу уникальности кортежей, все атрибуты вместе образуют потенциальный ключ.
потенциальный ключ, состоящий из одного атрибута, называется простым, а из нескольких - составным.
отношение может иметь несколько потенциальных ключей: один из потенциальных ключей объявляется первичным, а остальные - альтернативными.
Потенциальные ключи
Слайд 13
Восемь реляционных операторов
Теоретико-множественные операторы:
Декартово произведение
Объединение
Пересечение
Вычитание
Специальные реляционные операторы:
Выборка
Проекция
Соединение
Деление
Слайд 14
Отношение состоит из двух частей - заголовка отношения
и тела отношения.
Количество атрибутов называется степенью отношения.
Тело
отношения состоит из кортежей.
Количество кортежей отношения называется мощностью отношения.
Реляционная алгебра
Слайд 15
Декартово произведение
Основной структурой данных в модели является
отношение, именно поэтому модель получила название реляционной (от английского
relation — отношение).
Отношение в реляционной базе данных – подмножество прямого (декартова) произведения множества атрибутов.
N-арным отношением R называют подмножество декартова произведения D1x D2x ... xDn множеств D1, D2, ..., Dn ( n > 1 ), необязательно различных.
Исходные множества D1, D2, ..., Dn называют в модели доменами.
Слайд 16
Декартово произведение
Введем дополнительно понятие конкатенации, или сцепления, кортежей.
Сцеплением,
или конкатенацией, кортежей
c = и
q =
называется кортеж, полученный добавлением значений второго в конец первого.
Сцепление кортежей c и q обозначается как (c , q).
(c, q) =
Здесь n — число элементов в первом кортеже с, m — число элементов во втором кортеже q.
Слайд 19
Отношения, совместимые по типу
Отношения совместимы по типу, если
они имеют идентичные заголовки, а именно:
Отношения имеют одно
и то же множество имен атрибутов, т.е. для любого атрибута в одном отношении найдется атрибут с таким же наименованием в другом отношении,
Атрибуты с одинаковыми именами определены на одних и тех же доменах.
Слайд 20
Объединение отношений
Объединением двух совместимых по типу отношений
А и В называется отношение с тем же заголовком,
что и у отношений А и В, и телом, состоящим из кортежей, принадлежащих А или В, или обоим отношениям.
Синтаксис операции объединения:
Слайд 22
Пересечение отношений
Пересечением двух совместимых по типу отношений А
и В называется отношение с тем же заголовком, что
и у отношений А и В, и телом, состоящим из кортежей, принадлежащих одновременно обоим отношениям А и В.
Синтаксис операции пересечения:
Слайд 24
Вычитание отношений
Вычитанием двух совместимых по типу отношений
А и В называется отношение с тем же заголовком,
что и у отношений А и В, и телом, состоящим из кортежей, принадлежащих отношению А и не принадлежащих отношению В.
Синтаксис операции вычитания:
Слайд 26
Выборка
Выборкой на отношении А с условием С называется
отношение с тем же заголовком, что и у отношения
А, и телом, состоящим из кортежей, значения атрибутов которых при подстановке в условие С дают значение «Истина».
С представляет логическое выражение, в которое могут входить атрибуты отношения А и(или) скалярные выражения.
Слайд 30
Проекция
Проекцией отношения А по атрибутам X, Y,
…, Z, где каждый из атрибутов принадлежит отношению А,
называется отношение с заголовком (X, Y, …, Z) и телом, содержащим множество кортежей вида (x, y, …, z) таких, для которых в отношении А найдутся кортежи со значением атрибута Х равным х, значением атрибута Y равным y,…, значением Z равным z.
Проекция дает «вертикальный срез», в котором удалены все возникшие при таком срезе дубликаты кортежей.
Слайд 32
Соединение
Соединением отношений А и В по условию С
(логическое выражение, в которое могут входить атрибуты отношений и(или)
скалярные выражения) называется отношение, полученное путем последовательного применения операций декартова произведения и выборки.
Слайд 33
Соединение
Тэта-соединение
Эквисоединение
Естественное соединение
Внешнее соединение
Слайд 38
Внешнее соединение
Типы внешних соединений:
левое внешнее соединение -
внутреннее соединение + строки левой таблицы, которым нет соответствия
в правой таблице;
правое внешнее соединение - внутреннее соединение + строки правой таблицы, которым нет соответствия в левой таблице;
полное внешнее соединение - внутреннее соединение и строки правой таблицы, которым нет соответствия в левой таблице, и строки правой таблицы, которым нет соответствия в левой таблице.
Слайд 41
Деление
Синтаксис операции деления:
A DIVIDE BY B
Слайд 43
ЯЗЫК SQL
Structured Query Language (SQL)— это непроцедурный язык,
используемый для формулировки запросов к данным в большинстве современных
СУБД и являющийся индустриальным стандартом (ANSI, ISO)
Существует много его диалектов
Операторы языка делятся на группы
Слайд 44
ОПЕРАТОРЫ ОПРЕДЕЛЕНИЯ ДАННЫХ (DATA DEFINITION LANGUAGE DDL):
CREATE создает
объект БД;
ALTER изменяет объект;
DROP удаляет объект;
Слайд 45
ОПЕРАТОРЫ ОПРЕДЕЛЕНИЯ ДОСТУПА К ДАННЫМ (DATA CONTROL LANGUAGE
DCL):
GRANT предоставляет пользователю (группе) разрешения на определенные операции с
объектом;
REVOKE отзывает ранее выданные разрешения;
Слайд 46
ОПЕРАТОРЫ УПРАВЛЕНИЯ ТРАНЗАКЦИЯМИ (TRANSACTION CONTROL LANGUAGE, TCL)
COMMIT применяет
транзакцию;
ROLLBACK откатывает все изменения, сделанные в контексте текущей транзакции;
SAVEPOINT
делит транзакцию на более мелкие участки, применяется для отметки логических точек разрыва в границах транзакции;
SET TRANSACTION начинает транзакцию и определяет ее поведение.
Слайд 47
ОПЕРАТОРЫ МАНИПУЛЯЦИИ ДАННЫХ (DATA MANIPULATION LANGUAGE DML):
SELECT считывает
данные, удовлетворяющие заданным условиям;
INSERT добавляет новые данные;
UPDATE изменяет существующие
данные;
DELETE удаляет данные;
Слайд 48
Порядок выполнения оператора SELECT
Слайд 49
Порядок обработки элементов оператора SELECT
FROM -Определяются имена используемой
таблицы или нескольких таблиц.
WHERE – накладывается условие отбора
данных.
GROUP BY – образуются группы строк, имеющие одинаковые значения в указанном столбце.
HAVING – накладывается условие на отбор сгруппированных строк.
SELECT – определяются столбцы, которые нужно отобразить в результате.
ORDER BY – отобранные данные сортируются по указанным столбцам.
Слайд 50
Порядок выполнения оператора SELECT
Шаг 1 (FROM). Вычисляется прямое
декартовое произведение всех таблиц, указанных в обязательном разделе FROM.
Шаг 2 (WHERE). Для каждой строки из таблицы A вычисляется условное выражение, приведенное в разделе WHERE. Только те строки, для которых условное выражение возвращает значение TRUE, включаются в результат.
Слайд 51
Шаг 3 (GROUP BY). Строки таблицы, полученной на
втором шаге, группируются в соответствии со списком группировки, приведенным
в разделе GROUP BY. К группам можно применять функции агрегирования.
Если раздел GROUP BY опущен, то сразу переходим к шагу 4.
Порядок выполнения оператора SELECT
Слайд 52
Шаг 4 (HAVING). Если в операторе SELECT присутствует
раздел HAVING, то группы, не удовлетворяющие условному выражению, приведенному
в разделе HAVING, исключаются. Если раздел HAVING опущен, то сразу переходим к шагу 5.
Порядок выполнения оператора SELECT
Слайд 53
Шаг 5(ORDER BY ) . Упорядочение результатов запроса
по нескольким полям с возрастанием или убыванием (ORDER BY…
ASC (DESC)).
SELECT PD.PNUM, PD.DNUM, PD.VOLUME FROM PD ORDER BY DNUM;
ASC (с возрастанием ) по умолчанию
Порядок выполнения оператора SELECT
Слайд 54
Что такое подзапрос?
Подзапросы в зависимости от элементов в
предложении WHERE:
могут не возвращать ни одного или возвращать
несколько элементов (начинаются с IN, оператора сравнения, ANY, ALL);
возвращать единственное значение (с оператора сравнения);
представлять собой тест на существование (EXISTS)
Слайд 55
Предикаты, используемые в условии отбора c WHERE
Слайд 56
Оператор LIKE
SELECT site, url FROM wwwsites
WHERE
url LIKE '%my@_works%' ESCAPE '@';
Пример подходящего шаблона – ‘12my_works’
Слайд 58
Примеры выполнения SELECT
SELECT * FROM CUSTOMERS WHERE RATING
>ALL(SELECT RATING FROM CUSTOMERS WHERE CITY='ROME' )
Слайд 59
Примеры выполнения SELECT
SELECT * FROM CUSTOMERS WHERE RATING
>ANY(SELECT RATING FROM CUSTOMERS WHERE CITY='ROME' )
Слайд 60
Примеры выполнения SELECT
SELECT * FROM CUSTOMERS WHERE RATING
>SOME(SELECT RATING FROM CUSTOMERS WHERE CITY='ROME' )
Слайд 61
Примеры выполнения SELECT
Выбрать номера поставщиков, для которых не
существовало бы ни одной детали так, чтобы эта деталь
не была бы в поставках у данного поставщика
Слайд 62
Восемь реляционных операторов в SQL
Теоретико-множественные операторы:
Объединение Union
Пересечение
Intersect
Вычитание Minus
Декартово произведение Cross join
Специальные реляционные операторы:
Выборка where
Проекция
Соединение inner join, outer join
Деление exists
Слайд 67
Join
Существует три типа join-выражений:
cross join;
inner join;
outer join;
Слайд 69
Соединение
Inner join
Join … using on (…);
Natural
join;
Outer join
Right join | Left join |
Full join … on () …;
Слайд 70
Inner join
Inner join необходим для получения только
тех строк, для которых существует соответствие записей главной таблицы
и присоединяемой.
Слайд 71
Outer join
Outer join может быть left, right
и full (слово outer обычно опускается);
Конструкция join располагается сразу
после select-выражения.
... join_type join table_name on condition …
join_type - тип join-выражения (left, right и full ),
table_name - имя таблицы, которая присоединяется к результату,
condition - условие объединения таблиц.
Слайд 72
Outer join
В случае с Left join из
главной таблицы будут выбраны все записи, даже если в
присоединяемой таблице нет совпадений, то есть условие condition не учитывает присоединяемую (правую) таблицу.
Right join отображает все строки удовлетворяющие правой части условия condition, даже если они не имеют соответствия в главной (левой) таблице
Full outer join необходим для отображения всех возможных комбинаций строк из нескольких таблиц, это объединение результатов left и right join.