💀
Второй курс РПО
Основы проектирования баз данных
Основы проектирования баз данных
  • Понятия баз данных
  • Типы моделей данных
    • Реляционные базы данных
  • Реляционная алгебра
  • Модель процессов
  • Проектирование базы данных
  • Нормальные формы
    • Определения, и самое важное
  • Моделирование базы
    • Практическая работа: Решение
    • Для тех у кого iq как у Антона
  • Инструменты проектирования
  • Проектирование БД
  • Ключи и объекты
  • SQL Операции
  • Группировка данных
  • Пользовательский интерфейс
  • Проектирование БД
  • Управление таблицами
  • Ключи и индексы
  • Сортировка и поиск
    • 🤪Короткая версия
  • Работа с файлами
  • Запись массива в таблицу
  • Меню баз данных
  • Рабочие окна
  • Создание формы
  • Создание проекта БД и интерфейса
  • Ограничения полей
  • Работа с таблицами
  • Обработка транзакций
Powered by GitBook
On this page

Реляционная алгебра

19.09.2024

Реляционная алгебра

Основные понятия

  • Реляционная алгебра — формальная система манипулирования отношениями в реляционной модели данных.

  • Основные авторы: Т. Кодд, А. К. Дейт, Х. Дарвен

Замкнутость реляционной алгебры

Все операции над отношениями приводят к результатам, которые также являются отношениями.

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

  • Объединение: R1∪R2 R1 \cup R2 R1∪R2

  • Пересечение: R1∩R2 R1 \cap R2 R1∩R2

  • Разность: R1−R2 R1 - R2 R1−R2

  • Декартово произведение: R1×R2 R1 \times R2 R1×R2

Совместимость отношений по типу

Отношения совместимы, если имеют одинаковые атрибуты и типы данных. Для приведения к одному типу используют операцию переименования.

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

  1. Выборка σусловие(R) \sigma_{условие}(R) σусловие​(R) Фильтрация кортежей по заданному условию.

  2. Проекция πA1,A2,...,An(R) \pi_{A1, A2, ..., An}(R) πA1,A2,...,An​(R) Извлечение указанных атрибутов.

  3. Естественное соединение R1⋈R2 R1 \bowtie R2 R1⋈R2 Соединение по одинаковым атрибутам.

  4. Θ-соединение R1ΘR2 R1 \Theta R2 R1ΘR2 Соединение по произвольному условию.

  5. Деление R1÷R2 R1 \div R2 R1÷R2 Извлечение всех элементов из R1 R1 R1, связанных со всеми элементами из R2 R2 R2.

Примитивные операции

  • Выборка, проекция, произведение, объединение, вычитание, переименование.

Пример

Запрос: Получить имена поставщиков, которые поставляют деталь с кодом P2:

  1. R1:=SP⋈S R1 := SP \bowtie S R1:=SP⋈S

  2. R2:=σPID=′P2′(R1) R2 := \sigma_{PID='P2'}(R1) R2:=σPID=′P2′​(R1)

  3. Результат: πName(R2) \pi_{Name}(R2) πName​(R2)

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

1. Лёгкая задача

Задача: Есть таблица Студенты:

ID
Имя
Группа

1

Анна

A1

2

Борис

A2

3

Виктор

A1

Нужно выбрать всех студентов из группы A1.

Решение: σГруппа=′A1′(Студенты) \sigma_{Группа='A1'}(\text{Студенты}) σГруппа=′A1′​(Студенты)

Ответ:

ID
Имя
Группа

1

Анна

A1

3

Виктор

A1


2. Средняя задача

Задача: Даны две таблицы: Продукты:

ID
Название
Цена

1

Яблоко

100

2

Банан

150

3

Апельсин

200

Магазины:

ID
ПродуктID
Магазин

1

1

Магазин1

2

2

Магазин2

3

3

Магазин3

4

1

Магазин3

Нужно выбрать все магазины, где продаются продукты дешевле 150.

Решение:

  1. R1:=σЦена<150(Продукты) R1 := \sigma_{\text{Цена}<150}(\text{Продукты}) R1:=σЦена<150​(Продукты)

  2. R2:=R1⋈Магазины R2 := R1 \bowtie \text{Магазины} R2:=R1⋈Магазины

Ответ:

ID
ПродуктID
Магазин

1

1

Магазин1

4

1

Магазин3


3. Средняя задача

Задача: Даны таблицы: Книги:

ID
Название
Автор

1

Книга1

Иванов

2

Книга2

Петров

3

Книга3

Сидоров

Продажи:

ПродажаID
КнигаID
Магазин

1

1

Магазин1

2

2

Магазин2

3

3

Магазин1

Нужно получить имена авторов, чьи книги продаются в Магазин1.

Решение:

  1. R1:=σМагазин=′Магазин1′(Продажи) R1 := \sigma_{\text{Магазин}='Магазин1'}(\text{Продажи}) R1:=σМагазин=′Магазин1′​(Продажи)

  2. R2:=R1⋈Книги R2 := R1 \bowtie \text{Книги} R2:=R1⋈Книги

  3. R3:=πАвтор(R2) R3 := \pi_{\text{Автор}}(R2) R3:=πАвтор​(R2)

Ответ:

Автор

Иванов

Сидоров


4. Сложная задача

Задача: Есть две таблицы: Сотрудники:

ID
Имя
Отдел

1

Иван

IT

2

Ольга

HR

3

Сергей

IT

4

Анна

HR

Задачи:

ЗадачаID
СотрудникID
Тип

1

1

Важная

2

2

Обычная

3

3

Важная

4

4

Важная

Нужно найти имена сотрудников отдела IT, у которых есть важные задачи.

Решение:

  1. R1:=σОтдел=′IT′(Сотрудники) R1 := \sigma_{\text{Отдел}='IT'}(\text{Сотрудники}) R1:=σОтдел=′IT′​(Сотрудники)

  2. R2:=σТип=′Важная′(Задачи) R2 := \sigma_{\text{Тип}='Важная'}(\text{Задачи})R2:=σТип=′Важная′​(Задачи)

  3. R3:=R1⋈R2 R3 := R1 \bowtie R2 R3:=R1⋈R2

  4. R4:=πИмя(R3) R4 := \pi_{\text{Имя}}(R3) R4:=πИмя​(R3)

Ответ:

Имя

Иван

Сергей

PreviousРеляционные базы данныхNextМодель процессов

Last updated 8 months ago