Разделы презентаций


Базы Данных

Содержание

Операции реляционной алгебрыДанное определение – неформальное описание математического понятия.Опр. Алгебра (алгебраическая система) – этомножество объектов (основное множество) исовокупность операций над этими объектами, замкнутыми относительно основного множества. Пример. Множество целых чисел Z

Слайды и текст этой презентации

Слайд 1Базы Данных
Операции реляционной алгебры. Язык SQL.

Базы ДанныхОперации реляционной алгебры. Язык SQL.

Слайд 2Операции реляционной алгебры
Данное определение – неформальное описание математического понятия.
Опр. Алгебра

(алгебраическая система) – это
множество объектов (основное множество) и
совокупность операций над

этими объектами, замкнутыми относительно основного множества.
Пример. Множество целых чисел Z с совокупностью двух операций {+, –} – алгебра.


1. Операции реляционной алгебры

Операции реляционной алгебрыДанное определение – неформальное описание математического понятия.Опр. Алгебра (алгебраическая система) – этомножество объектов (основное множество)

Слайд 3Операции реляционной алгебры
Реляционная теория баз данных основана на понятиии реляционной

алгебры (алгебры отношений). Объектами в ней выступают отношения.
Э.Ф. Кодд

предложил 8 операций реляционной алгебры (реляционных операций). Каждая из них основана на отношениях как аргументах и результатом является всегда отношение.
R = f(R1, R2, ..., Rn)

Операции реляционной алгебрыРеляционная теория баз данных основана на понятиии реляционной алгебры (алгебры отношений). Объектами в ней выступают

Слайд 4Операции реляционной алгебры
Операции реляционной алгебры:
Теоретико-множественные:
1. Объединение
2. Пересечение
3. Разность
4. Расширенное декартово

произведение
Специальные:
5. Фильтрация (горизонтальный выбор)
6. Проекция (вертикальный выбор)
7. Условное соединение
8.

Деление.

Операции реляционной алгебрыОперации реляционной алгебры:Теоретико-множественные:1. Объединение2. Пересечение3. Разность4. Расширенное декартово произведениеСпециальные:5. Фильтрация (горизонтальный выбор) 6. Проекция (вертикальный

Слайд 5Операции реляционной алгебры
Опр. Пусть R – некоторое отношение. Схемой отношения

R (SR)назвается перечень имен атрибутов с указанием доменов, к которым

они относятся.
SR = (A1, A2, ..., An), Ai ⊆ Di, i=1, 2, ..., n.
Пример.
Абитуриент (НомерА, Фамилия, ДатаРожд, БаллЕГЭ) – схема отношения Абитуриент. Атрибуты и их домены:
НомерА – Числовой
Фамилия – Текстовый
ДатаРожд – Даты
БаллЕГЭ - Числовой

Операции реляционной алгебрыОпр. Пусть R – некоторое отношение. Схемой отношения R (SR)назвается перечень имен атрибутов с указанием

Слайд 6Операции реляционной алгебры
Опр. Схемы двух отношений R1 и R2 называются

эквивалентными (SR1~SR2), если они имеют одинаковое количество атрибутов и возможно

такое их упорядочение, что на одинаковых местах в схеме будут находиться атрибуты, прнимающие значения из одного домена.
Пример.
R1 (Фамилия, Имя, ОценкаБД, ДатаРожд)
R2(ОценкаМатАн, ДатаР, ИмяСтудента, ФамилияСтудента)


Операции реляционной алгебрыОпр. Схемы двух отношений R1 и R2 называются эквивалентными (SR1~SR2), если они имеют одинаковое количество

Слайд 7Операции реляционной алгебры

Теоретико-множественные операции

Операции реляционной алгебрыТеоретико-множественные операции

Слайд 8Операции реляционной алгебры
1. Объединение
Опр. Объединением двух отношений с эквивалентыми схемами

называют отношение, которое состоит их кортежей, принадлежащих первому, либо второму

отношениям, либо обоим одновременно.
R1 U R2 = {r | r R1 v r  R2}
где SR1 ~ SR2


Операции реляционной алгебры1. ОбъединениеОпр. Объединением двух отношений с эквивалентыми схемами называют отношение, которое состоит их кортежей, принадлежащих

Слайд 9Операции реляционной алгебры
2. Пересечение
Опр. Пересечением двух отношений с эквивалентыми схемами

называют отношение, которое состоит их кортежей, принадлежащих одновременно первому и

второму отношениям.
R1 ∩ R2 = {r | r R1 ^ r  R2}
где SR1 ~ SR2



Операции реляционной алгебры2. ПересечениеОпр. Пересечением двух отношений с эквивалентыми схемами называют отношение, которое состоит их кортежей, принадлежащих

Слайд 10Операции реляционной алгебры
3. Разность
Опр. Разностью двух отношений с эквивалентыми схемами

называют отношение, которое состоит их кортежей, принадлежащих первому отношению и

не принадлежащих второму отношению.
R1 \ R2 = {r | r R1 ^ r ∉ R2}
где SR1 ~ SR2



Операции реляционной алгебры3. РазностьОпр. Разностью двух отношений с эквивалентыми схемами называют отношение, которое состоит их кортежей, принадлежащих

Слайд 11Операции реляционной алгебры

Операции реляционной алгебры

Слайд 12Операции реляционной алгебры
4. Раширенное декартово произведение.
Опр. Расширенным декартовым произведением отношения

R1 и отношения R2 называется отношение, кортежи которого получены сцеплением

каждого кортежа отношения R1 с каждым кортежем отношения R2.
R1(A1, A2, ... , An)
R2(B1, B2, ... , Bm)
R1⊗R2 = {(p, q) | p R1 ^ q R2}


Операции реляционной алгебры4. Раширенное декартово произведение.Опр. Расширенным декартовым произведением отношения R1 и отношения R2 называется отношение, кортежи

Слайд 13Операции реляционной алгебры
Пример.



Операции реляционной алгебрыПример.

Слайд 14Операции реляционной алгебры

Специальные операции

Операции реляционной алгебрыСпециальные операции

Слайд 15Операции реляционной алгебры
5. Фильтрация (горизонтальный выбор, выборка)
Опр. Фильтрацией отношения R

по условию α(r) называется отношение, содержащее только те кортежы из

R, для которых истинно α(r).
R[α(r)] = {r | r  R ^ α(r)}
Условие α(r) может содержать термы сравнения (=, <>, <=, >=, <, >), константы, логические связки, скобки.


Операции реляционной алгебры5. Фильтрация (горизонтальный выбор, выборка)Опр. Фильтрацией отношения R по условию α(r) называется отношение, содержащее только

Слайд 16Операции реляционной алгебры

Пример.

Операции реляционной алгебрыПример.

Слайд 17Операции реляционной алгебры
6. Проекция (вертикальный выбор)
Опр. Проекцией отношения R(A1, A2,

... , An) по подмножеству его атрибутов B = (Ai1,

Ai2, ... , Aik) ⊆ (A1, A2, ... , An) называется отношение со схемой, соответствующей набору атрибутов В, содержащее кортежи, получаемые их кортежей исходного отношения R путем удаления из них значений, не принадлежащих атрибутам из В .
SR=(A1, A2, ... , An), B = (Ai1, Ai2, ... , Aik) ⊆ SR
R[B] = {r | r = ^ rit  Ait ^ (∃pR: p= ∀j1..k ∃z: rij = rz )}



Операции реляционной алгебры6. Проекция (вертикальный выбор)Опр. Проекцией отношения R(A1, A2, ... , An) по подмножеству его атрибутов

Слайд 18Операции реляционной алгебры
Пример

Операции реляционной алгебрыПример

Слайд 19Операции реляционной алгебры
7. Условное соединение
Опр. Условным соединением отношения R1(A1, A2,

... , An) и отношения R2(B1, B2, ... , Bm),

некоторые атрибуты которых сравнимы, по условию α(r) называется подмножество декартова произведения R1 ⊗R2, кортежи которого удовлетворяют условию α(r).
R1(A1, A2, ... , An), R2(B1, B2, ... , Bm), и пусть B=(Ai1, Ai2, ... , Aik), B ⊆ SR1 ^ B ⊆ SR2, α(r) - предикат на B. Тогда
R1 [α(r)] R2 = { | r1  R1 ^ r2  R2 ^ α(r1 ∩ r2)}


Операции реляционной алгебры7. Условное соединениеОпр. Условным соединением отношения R1(A1, A2, ... , An) и отношения R2(B1, B2,

Слайд 20Операции реляционной алгебры
Пример.

Операции реляционной алгебрыПример.

Слайд 21Операции реляционной алгебры
Поясняющие диаграммы (1-2):
1. Объединение
2. Пересечение

Операции реляционной алгебрыПоясняющие диаграммы (1-2):1. Объединение2. Пересечение

Слайд 22Операции реляционной алгебры
Поясняющие диаграммы (3-4):
3. Разность
4. Декартово произведение
А Б В
Г Д

=
АГ АД БГ БД ВГ ВД

Операции реляционной алгебрыПоясняющие диаграммы (3-4):3. Разность4. Декартово произведениеА Б ВГ Д⊗=АГ АД БГ БД ВГ ВД

Слайд 23Операции реляционной алгебры
Поясняющие диаграммы (5-6):
5. Фильтрация
6. Проекция

Операции реляционной алгебрыПоясняющие диаграммы (5-6):5. Фильтрация6. Проекция

Слайд 24Операции реляционной алгебры
Поясняющие диаграммы (7-8):
7. Условное соединение
А Б В
=
Г Г Д
Г Д Е
Ж З И
А Б В
Г Г Д
Ж Ж З
8. Деление
А А А Б В В
Г Д Е Д Е Д
Г Д
=
А
:

Операции реляционной алгебрыПоясняющие диаграммы (7-8):7. Условное соединениеА Б В=Г Г ДГ Д ЕЖ З ИА Б ВГ

Слайд 25Язык SQL
2. Язык SQL
Structured Query Language – Язык Структурированных Запросов

- универсальный компьютерный язык, применяемый для создания, модификации и управления

данными в реляционных базах данных.
В СУБД System R компании IBM Research (к. 1970 гг.)
Первый стандарт – 1989 год (SQL1)
Второй стандарт – 1992 год (SQL2)
Третий стандарт – 1999 год (SQL3) – объектная модель, обработка событий, триггеров, сложные типы данных, переносимость
Четвертый – SQL2003 (с небольшими последующим модификациями) – XML данные, оконные функции.
Операторы SQL могут встраиваться в программы традиционных языков программирования (C++, Pearl, Delphi, Java)


Язык SQL2. Язык SQLStructured Query Language – Язык Структурированных Запросов - универсальный компьютерный язык, применяемый для создания,

Слайд 26Операции реляционной алгебры
Разделы SQL
DDL Data Definition Language
DML Data Manipulaition Language
DQL Data Query Language
Другие

средства Транзакции, админ., прогр.

Операции реляционной алгебрыРазделы SQLDDL Data Definition LanguageDML Data Manipulaition LanguageDQL Data Query LanguageДругие средства  Транзакции, админ.,

Слайд 27Язык SQL
Data Definition Language
- язык описания (определения) данных


Язык SQLData Definition Language- язык описания (определения) данных

Слайд 28Язык SQL
Таблица (TABLE) – основное информационное хранилище базы данных в

реляционной модели;
Представление (VIEW) - виртуальная (логическая) таблица, представляющая собой поименованный

запрос В отличие от обычных таблиц реляционной БД, представление не является самостоятельной частью набора данных, хранящегося в базе. Содержимое представления динамически вычисляется на основании данных, находящихся в реальных таблицах;
Индекс (INDEX) - объект базы данных, создаваемый с целью повышения производительности поиска данных.
Язык SQLТаблица (TABLE) – основное информационное хранилище базы данных в реляционной модели;Представление (VIEW) - виртуальная (логическая) таблица,

Слайд 29Язык SQL
Data Manipulation Language
- язык манипулирования данными


Язык SQLData Manipulation Language- язык манипулирования данными

Слайд 30Язык SQL
Data Query Language
- язык запросов


Язык SQLData Query Language- язык запросов

Слайд 31Язык SQL
3. Оператор SELECT

Этот оператор реализует все операции реляционной алгебры.

Синтаксис SELECT:



Язык SQL3. Оператор SELECTЭтот оператор реализует все операции реляционной алгебры. Синтаксис SELECT:

Слайд 32Язык SQL
Пояснения:
ALL – в результат включаются все строки запроса (в

том числе одинаковые; по умолчанию); DISTINCT – в результат включаются

только различные строки.
* означает выбор всех полей таблиц; иначе – только тех, которые указаны в разделе SELECT.
В разделе FROM задается перечень исходных таблиц, над которыми выполняется декартово произведение.
В разделе WHERE задаются условия запроса: либо условие выборки (предикат фильтрации), либо условного соединения.

Язык SQLПояснения:ALL – в результат включаются все строки запроса (в том числе одинаковые; по умолчанию); DISTINCT –

Слайд 33Язык SQL
Пояснения:
В разделе GROUP BY задается список полей, по значениям

которых выполняется группировка записей.
В разделе HAVING задаются условия, накладываемые на

каждую группу записей.
В разделе ORDER BY перечисляются поля, определяющие порядок сортировки записей в результате.
Имена полей – составные: ИмяТаблицы.ИмяПоля
В разделе SELECT можно задавать псевдонимы полей (AS); также AS можно использовать в разделе FROM для задания псевдонимов таблиц.

Язык SQLПояснения:В разделе GROUP BY задается список полей, по значениям которых выполняется группировка записей.В разделе HAVING задаются

Слайд 34Язык SQL
Условия (предикаты) в разделе WHERE:
Сравнения =, ,

>, >=
Between A and B – значение между A и

B
Not Between A and B – значение не между A и B
In (множество) – принадлежность множеству
Not In (множество) – непринадлежность множеству
Like “шаблон” – сравнение с шаблоном (образцом):
_ - любой одиночный символ
% - любая последовательность символов
другие символы обозначают сами себя
Is Null – сравнение с неопределенным значением
Not Is Null – отрицание неопределенного значения



Язык SQLУсловия (предикаты) в разделе WHERE:Сравнения =, , =Between A and B – значение между A и

Слайд 35Язык SQL
Пример. Создание запросов к базе данных на SQL
Схема данных:





Язык SQLПример. Создание запросов к базе данных на SQLСхема данных:

Слайд 36Язык SQL
Таблицы:





Язык SQLТаблицы:

Слайд 37Язык SQL

Язык SQL

Слайд 38Язык SQL

Язык SQL

Слайд 39Язык SQL

Язык SQL

Слайд 40Язык SQL

Язык SQL

Слайд 41Язык SQL

Язык SQL

Слайд 42Язык SQL

Язык SQL

Слайд 43Язык SQL

Язык SQL

Слайд 44Язык SQL
Вопрос: как изменится результат запроса, если
убрать DISTINCT?

Язык SQLВопрос: как изменится результат запроса, если убрать DISTINCT?

Слайд 45Язык SQL

Язык SQL

Слайд 46Язык SQL

Язык SQL

Слайд 47Язык SQL
4. Группировка и агрегатные функции

Группировка – разбиение всего множества

записей таблицы на группы, в которые собираются записи, имеющие одинаковые

значения полей группировки.





Если группировать записи по полю «Пол», то они будут разбиты на две группы записей («М» и «Ж»).
Если группировать записи по полю «Группа», то они будут разбиты на три группы записей («39-21», «ИТ-11» и «ИТ-21»).

Язык SQL4. Группировка и агрегатные функцииГруппировка – разбиение всего множества записей таблицы на группы, в которые собираются

Слайд 48Язык SQL

Агрегатная функция – вычисляет обобщенное групповое значение для всех

записей каждой группы.






Язык SQLАгрегатная функция – вычисляет обобщенное групповое значение для всех записей каждой группы.

Слайд 49Язык SQL

Агрегатные функции используются подобно именам полей в SELECT
Аргументами агрегатных

функций являются имена полей (либо * для COUNT)
При использовании

группировки в разделе SELECT можно использовать только имена полей группировки либо агрегатные функции.
Можно применять агрегатные функции и без группировки, тогда вся таблица рассматривается как одна группа.





Язык SQLАгрегатные функции используются подобно именам полей в SELECTАргументами агрегатных функций являются имена полей (либо * для

Слайд 50Язык SQL

Язык SQL

Слайд 51Язык SQL

Язык SQL

Слайд 52Язык SQL

Язык SQL

Слайд 53Язык SQL

Язык SQL

Слайд 54Язык SQL

Язык SQL

Слайд 55Язык SQL

Язык SQL

Слайд 56Операции реляционной алгебры

Операции реляционной алгебры

Слайд 57Операции реляционной алгебры

Операции реляционной алгебры

Слайд 58Язык SQL
5. Внутреннее и внешнее соединение таблиц

Соединение (JOIN) – формирование

представления таблиц сцеплением их записей.

Ранее были введены операции расширенного декартова

произведения (каждый кортеж с каждым) и условного соединения (только те кортежи, для которых истинен предикат соединения).

JOIN – специальная операция SQL, позволяющая указать способ соединения двух или более таблиц в разделе FROM.



Язык SQL5. Внутреннее и внешнее соединение таблицСоединение (JOIN) – формирование представления таблиц сцеплением их записей.Ранее были введены

Слайд 59Язык SQL
Виды соединений


JOIN соединение
INNER JOIN внутреннее соединение
OUTER JOIN внешнее соединение
LEFT JOIN левое внешнее

соединение
RIGHT JOIN правое внешнее соединение
FULL JOIN полное внешнее соединение

Язык SQLВиды соединений JOIN соединениеINNER JOIN внутреннее соединениеOUTER JOIN внешнее соединениеLEFT JOIN левое внешнее  соединениеRIGHT JOIN

Слайд 60Язык SQL
Синтаксис оператора соединения:



Таблица1 JOIN Таблица2 ON УсловиеСоединения



Язык SQLСинтаксис оператора соединения:Таблица1 JOIN Таблица2 ON УсловиеСоединения

Слайд 61Язык SQL
1. Внутреннее соединение INNER JOIN Соединяются только те записи из

T1, для которых существуют записи из T2 и наоборот.
SELECT * FROM

T1 INNER JOIN T2 ON T1.B1=T2.B2;
Язык SQL1. Внутреннее соединение INNER JOIN Соединяются только те записи из T1, для которых существуют записи из

Слайд 62Язык SQL
2. Левое внешнее соединение LEFT JOIN Соединяются все записи из

T1 с соответствующими записями из T2. Отсутствующие записи заменяются на

NULL.

SELECT * FROM T1 LEFT JOIN T2 ON T1.B1=T2.B2;

Язык SQL2. Левое внешнее соединение LEFT JOIN Соединяются все записи из T1 с соответствующими записями из T2.

Слайд 63Язык SQL
3. Правое внешнее соединение RIGHT JOIN Соединяются все записи из

T2 с соответствующими записями из T1. Отсутствующие записи заменяются на

NULL.

SELECT * FROM T1 RIGHT JOIN T2 ON T1.B1=T2.B2;

Язык SQL3. Правое внешнее соединение RIGHT JOIN Соединяются все записи из T2 с соответствующими записями из T1.

Слайд 64Язык SQL
4. Полное внешнее соединение FULL JOIN Соединяются все записи из

T1 и все записи из T2. Отсутствующие записи заменяются на

NULL.

SELECT * FROM T1 FULL JOIN T2 ON T1.B1=T2.B2;

Язык SQL4. Полное внешнее соединение FULL JOIN Соединяются все записи из T1 и все записи из T2.

Слайд 65Язык SQL
Пример.
Требуется написать запрос: «Количество детей у каждого сотрудника»

Язык SQLПример.Требуется написать запрос: «Количество детей у каждого сотрудника»

Слайд 66Язык SQL
Версия 1: без соединений.
SELECT MAX(Сотрудники.Фамилия) AS Фам, COUNT (*)

AS Детей
FROM Сотрудники, Дети WHERE Сотрудники.КодС=Дети.КодС
GROUP BY Сотрудники.КодС;

Язык SQLВерсия 1: без соединений.SELECT MAX(Сотрудники.Фамилия) AS Фам, COUNT (*) AS ДетейFROM Сотрудники, Дети WHERE Сотрудники.КодС=Дети.КодСGROUP BY

Слайд 67Язык SQL
Версия 2: с помощью внутреннего соединения.
SELECT MAX(Сотрудники.Фамилия) AS Фам,

COUNT (*) AS Детей
FROM Сотрудники INNER JOIN Дети ON Сотрудники.КодС=Дети.КодС
GROUP

BY Сотрудники.КодС;

Результат тот же. Но где же Сидоров?

Язык SQLВерсия 2: с помощью внутреннего соединения.SELECT MAX(Сотрудники.Фамилия) AS Фам, COUNT (*) AS ДетейFROM Сотрудники INNER JOIN

Слайд 68Язык SQL
Версия 2: с помощью левого внешнего соединения.
SELECT MAX(Сотрудники.Фамилия) AS

Фам, COUNT (*) AS Детей
FROM Сотрудники LEFT JOIN Дети ON

Сотрудники.КодС=Дети.КодС
GROUP BY Сотрудники.КодС;

Но у Сидорова нет детей! Почему 1?

Язык SQLВерсия 2: с помощью левого внешнего соединения.SELECT MAX(Сотрудники.Фамилия) AS Фам, COUNT (*) AS ДетейFROM Сотрудники LEFT

Слайд 69Язык SQL
Версия 2: с помощью левого внешнего соединения.
SELECT MAX(Сотрудники.Фамилия) AS

Фам, COUNT (Дети.Имя) AS Детей
FROM Сотрудники LEFT JOIN Дети

ON Сотрудники.КодС=Дети.КодС
GROUP BY Сотрудники.КодС;

Вот теперь правильно. Отличие Count(*) от Count(Поле) состоит в том, что вторая не учитывает нулевые значения.

Язык SQLВерсия 2: с помощью левого внешнего соединения.SELECT MAX(Сотрудники.Фамилия) AS Фам,  	 COUNT (Дети.Имя) AS ДетейFROM

Слайд 70Язык SQL
В SQL еще масса различных возможностей и средств. Рекомендуется изучать

литературу и интернет.

http://www.sql-ex.ru/
http://citforum.ru
http://www.sql.ru/
и др.



Язык SQLВ SQL еще масса различных возможностей и средств. Рекомендуется изучать литературу и интернет.http://www.sql-ex.ru/http://citforum.ruhttp://www.sql.ru/и др.

Обратная связь

Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика