1 БАЗЫ ДАННЫХ Реляционная алгебра. ЗАНЯТИЕ 3 ПУГАЧЁВ Ю.В. Учитель информатики Харьковская общеобразовательная школа І-ІІІ ступеней 60 Харьковского городского совета Харьковской области
2 Цель: Содержание: Изучить манипуляционную часть реляционной концепции; рассмотреть традиционные и специальные операторы реляционной алгебры.. Традиционные операции: объединение пересечение вычитание декартово произведение отношений; Специальные операции: выборка проекция соединение деление;
3 1)Реляционная алгебра 2)Реляционное исчисление Манипуляционная часть Операция Отношение 1 Отношение 2 Отношение 3 Н_СОТРФАМН_ОТД 1Иванов1 2Петров1 3Сидоров2 Сотрудники ФАМ Иванов Петров Сидоров Фамилии сотрудников Проекция На основании реляционной алгебры разработан структури- рованный язык запросов SQL (Structure Query Languige)
4 1)Традиционные операции: Объединение; Пересечение; Вычитание; Декартово произведение; 2)Специальные операции: Выборка; Проекция; Соединение; Деление. Основные операции реляционной алгебры
Объединение отношений 5 Объединение двух односхемных отношений А и В - отношение С, построенное по той же схеме и содержащее все кортежи отношения А и все кортежи отношения В. C = A UNION B; Графическое представление: А В С Пример: Номер книги Место храненияНазвание 2106Художественный отделЧеркасов А. «Хмель» 2184Художественный отделТолстой А. «Петр Первый» 3012Художественный отделБрэдбери Р. «Марсианские хроники» 3145Художественный отделПушкин А.С. «Евгений Онегин» Номер книги Место храненияНазвание 3161Отдел технической литературы К.Дж.Дейт «Введние в системы БД» 3142Отдел технической литературы Гладун В.П. «Планирование решений» 4024Отдел технической литературы Качко Е.Г. «Программирование на С++» Книги художественного отдела Книги отдела технической литературы Номер книги Место храненияНазвание 2106Художественный отдел Черкасов А. «Хмель» 2184Художественный отдел Толстой А. «Петр Первый» 3012Художественный отдел Брэдбери Р. «Марсианские хроники» 3145Художественный отдел Пушкин А.С. «Евгений Онегин» 3161Отдел технической литературы К.Дж.Дейт «Введние в системы БД» 3142Отдел технической литературы Гладун В.П. «Планирование решений» 4024Отдел технической литературы Качко Е.Г. «Программирование на С++» Книги отделов технической и художественной литературы
Пересечение отношений 6 Пересечение двух односхемных отношений А и В - отношение С, построенное по той же схеме и содержащее только те кортежи отношения А, которые есть в отношении В. C = A INTERSECT B; Графическое представление: А В Пример: Пациенты поликлиники 26 Сотрудники университета Сотрудники университета, находящиеся на диспанцеризации в поликлинике 26 ФИОНомер паспорта Иванов И.И.МК Петров П.П.МН Сидоров С.С.КП ФИОНомер паспорта Андреев А.А.МК Николаев Н.Н.КМ Петров П.П.МН Сидоров С.С.КП ФИОНомер паспорта Петров П.П.МН Сидоров С.С.КП С
Вычитание отношений 7 Вычитание двух односхемных отношений А и В - отношение С, построенное по той же схеме и содержащее те кортежи отношения А, которых нет в отношении В. C = A MINUS B; Графическое представление: В С Пример: Сотрудники предприятия Сотрудники предприятия, прошедшие медосмотр Сотрудники предприятия, не прошедшие медосмотр ФИОНомер паспорта Иванов И.И.МК Петров П.П.МН Сидоров С.С.КП А ФИОНомер паспорта Иванов И.И.МК Андреев А.А.МК Николаев Н.Н.КМ Петров П.П.МН Сидоров С.С.КП ФИОНомер паспорта Андреев А.А.МК Николаев Н.Н.КМ
Декартово произведение отношений 8 Декартово произведение двух отношений А и В - отношение С, схема которого включает все атрибуты отношений А и В, а тело отношения состоит из всевозможных сцеплений кортежей отношений А и В. C = A TIMES B; Пример: Студенты Экзамены Экзаменационная ведомость ФИО Иванов И.И. Петров П.П. Сидорова С.С. ДисциплинаДатаОценка Мат.анализ Ин. яз ФИОДисциплинаДатаОценка Иванов И.И.Мат.анализ Иванов И.И.Ин. яз Петров П.П.Мат.анализ Петров П.П.Ин. яз Сидорова С.С.Мат.анализ Сидорова С.С.Ин. яз
Выборка 9 Выборка на отношении А - отношение С, построенное по той же схеме что и отношение А и содержащее подмножество кортежей отношения А, удовлетворяющих условию выборки. C = A WHERE условие выборки; Пример: Графическое представление: Номер книги Место храненияНазвание 2106Художественный отделЧеркасов А. «Хмель» 2184Художественный отделТолстой А. «Петр Первый» 3012Художественный отделБрэдбери Р. «Марсианские хроники» 3145Художественный отделПушкин А.С. «Евгений Онегин» Книги художественного отдела (А) Номер книги Место храненияНазвание 2106Художественный отдел Черкасов А. «Хмель» 2184Художественный отдел Толстой А. «Петр Первый» Книги с номерами от 2000 до 3000 (С) C = A WHERE (Номер книги > 2000) AND (Номер книги < 3000);
Проекция 10 - отношение С, схема которого состоит из подмножества атрибутов, по которым производится проекция, а кортежи содержат соответствующие значения из кортежей отношения А. Проекция отношения А - отношение С, схема которого состоит из подмножества атрибутов, по которым производится проекция, а кортежи содержат соответствующие значения из кортежей отношения А. C = A [проецируемые атрибуты]; Пример: Графическое представление: Номер книги Место храненияНазвание 2106Художественный отделЧеркасов А. «Хмель» 2184Художественный отделТолстой А. «Петр Первый» 3012Художественный отделБрэдбери Р. «Марсианские хроники» 3145Художественный отделПушкин А.С. «Евгений Онегин» Книги художественного отдела (А) Инвентеризация книг (С) C = A [Номер книги, Название]; Номер книги Название 2106Черкасов А. «Хмель» 2184Толстой А. «Петр Первый» 3012Брэдбери Р. «Марсианские хроники» 3145Пушкин А.С. «Евгений Онегин»
11 Примеры выборок и проекций на языке SQL C = A WHERE (Номер книги > 2000) AND (Номер книги < 3000); Выборка SELECT * FROM A WHERE (Номер книги > 2000) AND (Номер книги < 3000); Проекция Запрос на языке SQL C = A [Номер книги, Название]; SELECT Номер книги, Название FROM A;
Соединение 12 Соединение отношений А и В подобно декартовому произведению отношений, но сцепление кортежей отношений А и В происходит не каждое с каждым, а по некоторому условию. C = A TIMES B WHERE условие соединения; C = A TIMES B WHERE A[d]=B[d]; Естественное соединение отношений А и В - соединение по условию равенства значений некоторого атрибута отношений А и В (чаще всего равенство значений первичного и внешнего ключа). C = A JOIN B; C = A TIMES B WHERE A[d] B[d]; - соединение (тета-соединение) отношений А и В - соединение по условию не равенства значений атрибутов отношений А и В. - соединение (тета-соединение) отношений А и В - соединение по условию не равенства значений атрибутов отношений А и В. где - операторы >, >=, и т.д.
Пример естественного соединения 13 Банки (А) Сберегательные книжки (В) Номер банка Номер счета ФИОСуммаТип вклада Иванов И.И.1500Срочный Петров П.П.3245Обыкновенный Сидоров С.С.2000Обыкновенный Никитин Н.Н.800Срочный Номер банка РайонАдрес 2016ВыборгскийХудожников, ВыборгскийТихорецкий, ПролетарскийМалый, 7 Номер банкаРайонАдресНомер счета ФИОСуммаТип вклада 2016ВыборгскийХудожников, Иванов И.И.1500Срочный 3034ПролетарскийМалый, 72345Петров П.П.3245Обыкновенный Ведомость вкладов (С) C = А JOIN B = A TIMES B WHERE A[Номер банка]=B[Номер банка] ;
14 Женщины (В) Возможные пары (С) C = A TIMES B WHERE (A[Возраст] >= B[Возраст]-1) AND NOT (A[Возраст] >= B[Возраст]+10) ; ФИО мужчиныВозр. муж. Иванов Иван Иванович35 Сергеев Сергей Сергеевич40 Петров Петр Петрович27 Николаев Николай Николаевич56 Мужчины (А) ФИО женщиныВозр. жен. Алексеева Алена Алексеевна29 Светлова Светлана Сергеевна25 Петрова Полина Петровна36 Александрова Александра Александровна 38 Зинченко Зинаида Ивановна54 ФИО мужчиныВозр. муж.ФИО женщиныВозр. жен. Иванов Иван Иванович35Алексеева Алена Алексеевна29 Иванов Иван Иванович35Светлова Светлана Сергеевна25 Иванов Иван Иванович35Петрова Полина Петровна36 Сергеев Сергей Сергеевич40Петрова Полина Петровна36 Сергеев Сергей Сергеевич40Александрова Александра Александровна 38 Петров Петр Петрович27Светлова Светлана Сергеевна25 Николаев Николай Николаевич56Зинченко Зинаида Ивановна54 Пример тета-соединения
Деление отношений 15 Пусть отношение А, называемое делимым, содержит атрибуты (а1, а2, а3, …, аn). Отношение В – делитель – содержит подмножество атрибутов отношения А, например, (а1, а2, …, ак). Результирующее отношение С определено на атрибутах отношения А, которых нет в В, т.е. (ак+1, ак+2, …, аn). Кортеж включается в отношение С только, если его декартово произведение с отношением В содержится в делимом отношении А. Пример: Ведомость (А) Список студентов для повышения стипендии (С) C = A DIVIDEBY B; Условие повышения стипендии (В) ФИОДисциплинаОценка Иванов И.И.Мат.анализОтлично Иванов И.И.Ин. яз.Отлично Петров П.П.Мат.анализХорошо Петров П.П.Ин. яз.Отлично Сидорова С.С.Мат.анализОтлично Сидорова С.С.Ин. яз.Удовлетворит. Андреев А.А.Мат.анализОтлично ДисциплинаОценка Мат.анализОтлично Ин. яз.Отлично ФИО Иванов И.И.
16 Свойства основных операций реляционной алгебры и ограничения их выполнения ОперацияМощностьСтепеньОграничения C=A UNION B R(C)
17 полной, т.к. с помощью реляционных операторов можно сформулировать практически любой запрос и получить отношение практически любого вида замкнутой, т.к. в реляционной модели можно использовать вложения сколь угодно сложной структуры НазваниеБелыйСинийЧерныйКрасный Волга21 Запорожец121 Москвич1 НазваниеЦветНомер ВолгаБелый12-34 ХАР Запороже ц Синий23-78 ХАН Запороже ц Белый45-12 АПР ВолгаЧерный23-98 ЗАП Запороже ц Красный23-87 ЗАО ВолгаБелый56-43 НАН Запороже ц Синий50-32 ВСА МосквичКрасный56-34 ВАС Автомобили Статистика по автомобилям Недостаток : Невозвожно получить кросс-таблицы (перекрестные запросы) Достоинства и недостатки реляционной алгебры Реляционную алгебру можно считать: «Кросс-таблица» - таблица, атрибуты в которой формируются из значений другой таблицы.