1 of 16

Бази даних та інформаційні системи

Маніпуляційна частина реляційної моделі.

Реляційна алгебра

Практичне заняття №2

(формування практичних навичок

щодо побудови виразів РА)

2 of 16

План заняття

  1. Початкова схема даних
  2. Основні положення РА Кодда.
  3. Теоретико-множинні операції РА
    • Операції об'єднання, перетину, різниці. Сумісність за типом
    • Операція розширеного декартового добутку. Сумісність відносно операції
  4. Спеціальні реляційні операції
    • Операція обмеження
    • Операція взяття проекції
    • Операція з'єднання відношень
    • Операція ділення відношень

Висновок

ХНУРЕ кафедра Інформатики доц. Яковлева О.В.

2

3 of 16

Початкова схема даних�БД "УспішністьСтудентів"

БД "УспішністьСтудентів"

СТУДЕНТ(ІН_Студент, Прізвище, Адреса, Консультант) УСПІШНІСТЬ

ДИСЦИПЛІНА (ІН_Дисц, Назва)

УСПІШНІСТЬ(ІН_Студ, ІН_Дисц, Семестр, Оцінка)

СТУДЕНТ

ДИСЦИПЛІНА

ХНУРЕ кафедра Інформатики доц. Яковлева О.В.

3

ІН_Студент

Прізвище

Адреса

Консультант

1

Іванов І.І.

А1

4

2

Іванов І.І.

А2

4

3

Петрова П.П.

A3

2

4

Андрєєва А. А.

А4

Null

ІН_Дисц

Назва

Kl

Бази даних

К2

Вища матем.

КЗ

Фізика

ІН_Студ

ІН_Дисц

Семестр

Оцінка

1

Kl

6

75

1

K2

1

75

1

K2

2

60

2

Kl

6

90

2

КЗ

3

75

4

Kl

6

90

4

K2

1

90

4

КЗ

3

90

4

K2

2

90

4 of 16

Спеціальні реляційні операції.�Операція обмеження (вибірка)

  •  

ХНУРЕ кафедра Інформатики доц. Яковлева О.В.

4

ІН_Студент

Прізвище

Адреса

Консультант

1

Іванов І.І.

А1

4

2

Іванов І.І.

А2

4

ЯКІСТЬ_К2

 

ІН_Студ

ІН_Дисц

Семестр

Оцінка

1

K2

1

75

4

K2

1

90

  • Запит2. Вивести інформацію про успішність студентів, які отримали більше 60 з дисципліни К2 у першому семестрі (виводити з таблиці Успішність)

Рішення.

 

5 of 16

Спеціальні реляційні операції.�Операція проекція

  •  

ХНУРЕ кафедра Інформатики доц. Яковлева О.В.

5

Оцінка

60

75

90

  • Запит 3. Вивести номери студентів, які отримали більше 60 з дисципліни К2 у першому семестрі.

ІН_Студ

1

4

 

6 of 16

Спеціальні реляційні операції.�З'єднання відношень

Види з'єднань:

  • тета-з'єднання;
  • еквіз'єднання;
  • природне з'єднання;
  • зовнішнє з'єднання;
  • напівз'єднання.

Спосіб отримання:

  • на основі декартового добутку;
  • табличний пошук.

ХНУРЕ кафедра Інформатики доц. Яковлева О.В.

6

7 of 16

Спеціальні реляційні операції.�Природне з'єднання

  • Запит 4. Отримати інформацію про студентів та їхню успішність (приєднати інформацію про успішність до інформації про студентів).

ХНУРЕ кафедра Інформатики доц. Яковлева О.В.

7

 

 

 

 

ІН_Студент

Прізвище

Адреса

Консультант

ІН_Дисц

Семестр

Оцінка

1

Іванов І.І.

А1

4

Kl

6

75

1

Іванов І.І.

А1

4

K2

1

75

1

Іванов І.І.

А1

4

K2

2

60

2

Іванов І.І.

А2

4

Kl

6

90

2

Іванов І.І.

А2

4

КЗ

3

75

4

Андрєєва А. А.

А4

Null

Kl

6

90

4

Андрєєва А. А.

А4

Null

K2

1

90

4

Андрєєва А. А.

А4

Null

КЗ

3

90

4

Андрєєва А. А.

А4

Null

K2

2

90

 

Рішення

8 of 16

Спеціальні реляційні операції.�Природне з'єднання

  • Запит 5. Вивести всю інформацію про студентів, їхні оцінки з дисципліни К1 (виводити всі поля відношень СТУДЕНТ і УСПІШНІСТЬ)

ХНУРЕ кафедра Інформатики доц. Яковлева О.В.

8

Рішення.

ІН_Студ

ІН_Дисц

Семестр

Оцінка

1

Kl

6

75

2

Kl

6

90

4

Kl

6

90

ІН_Студент

Прізвище

Адреса

Консультант

ІН_Дисц

Семестр

Оцінка

1

Іванов І.І.

А1

4

Kl

6

60

2

Іванов І.І.

А2

4

Kl

6

75

4

Андрєєва А. А.

А4

Null

Kl

6

90

СТУДЕНТ_К1

 

 

 

9 of 16

Спеціальні реляційні операції.�Природне з'єднання

  • Запит 6. Вивести прізвища студентів, які складали іспит з дисципліни "Вища математика" в 1 семестрі.

ХНУРЕ кафедра Інформатики доц. Яковлева О.В.

9

Рішення.

Варіант 1:

Варіант 2 :

Варіант 3 :

Прізвище

Іванов І.І.

Андрєєва А.А.

СТУДЕНТ_ВМ

 

 

 

10 of 16

Спеціальні реляційні операції.�Тета-з'єднання (еквіз'єднання)

  • Запит 7. Вивести прізвища студентів, у яких консультантом є Андрєєва А.А.

ХНУРЕ кафедра Інформатики доц. Яковлева О.В.

10

Рішення.

СТУД1 ← СТУДЕНТ

СТУД2 ← СТУДЕНТ

11 of 16

Спеціальні реляційні операції.�З'єднання відношень. Зовнішнє з'єднання

  • Запит15. Вивести інформацію про студентів, які ще не складали іспити

ХНУРЕ кафедра Інформатики доц. Яковлева О.В.

11

  • Запит 8. Вивести інформацію про всіх студентів та їхню успішність. Студенти, які ще не складали іспити, повинні також потрапити в результуючий набір даних.

 

 

 

 

ІН_Студент

Прізвище

Адреса

Консультант

ІН_Дисц

Семестр

Оцінка

1

Іванов І.І.

А1

4

Kl

6

75

1

Іванов І.І.

А1

4

K2

1

75

1

Іванов І.І.

А1

4

K2

2

60

2

Іванов І.І.

А2

4

Kl

6

90

2

Іванов І.І.

А2

4

КЗ

3

75

3

Петрова П.П.

A3

2

Null

Null

Null

4

Андрєєва А. А.

А4

Null

Kl

6

90

4

Андрєєва А. А.

А4

Null

K2

1

90

4

Андрєєва А. А.

А4

Null

КЗ

3

90

4

Андрєєва А. А.

А4

Null

K2

2

90

Рішення

СТУДЕНТ ⊃⊲ УСПІШНІСТЬ

СТУДЕНТ ⊃⊂ УСПІШНІСТЬ

СТУДЕНТ ⊳⊂ УСПІШНІСТЬ

12 of 16

Спеціальні реляційні операції.�Операція ділення

ХНУРЕ кафедра Інформатики доц. Яковлева О.В.

12

  • Запит 9. Вивести номери студентів, які склали іспити з усіх дисциплін (хоча б один раз).

Крок 2.

C ←B÷A

ІН_Дисц

Kl

К2

КЗ

A

B

C

 

Рішення

Крок 1. Підготовка відношень

 

13 of 16

Схема даних�БД "УспішністьСтудентів"

БД "УспішністьСтудентів"

СТУДЕНТ(ІН_Студент, Прізвище, Адреса, Консультант) УСПІШНІСТЬ

ДИСЦИПЛІНА (ІН_Дисц, Назва)

УСПІШНІСТЬ(ІН_Студ, ІН_Дисц, Семестр, Оцінка)

СТУДЕНТ

ДИСЦИПЛІНА

ХНУРЕ кафедра Інформатики доц. Яковлева О.В.

13

ІН_Студент

Прізвище

Адреса

Консультант

1

Іванов І.І.

А1

4

2

Іванов І.І.

А2

4

3

Петрова П.П.

A3

2

4

Андрєєва А. А.

А4

Нуль

ІН_Дисц

Назва

Kl

Бази даних

К2

Вища матем.

КЗ

Фізика

ІН_Студ

ІН_Дисц

Семестр

Оцінка

1

Kl

6

75

1

K2

1

75

1

K2

2

60

2

Kl

6

90

2

КЗ

3

75

4

Kl

6

90

4

K2

1

90

4

КЗ

3

90

4

K2

2

90

Напишіть вирази реляційної алгебри для таких завдань:

  1. Вивести назви дисциплін, які складені на оцінку 75.
  2. Вивести ІН_Студент, Прізвище для студентів, що складали іспити з дисциплін К1 і К2.
  3. Вивести інформацію про студентів, які отримували оцінку 90 на першому році навчання (семестри 1,2) з дисципліни К1.
  4. Вивести прізвища студентів, які складали Фізику.
  5. Вивести прізвища студентів, які складали іспити хоча б один раз.
  6. Вивести інформацію про студентів, які ще не складали іспити.
  7. Вивести номери студентів, які склали іспити з усіх дисциплін.
  8. Для охочих:

Вивести прізвища студентів, у яких консультантом є Андрєєва А.А.

14 of 16

Схема даних "Мережа готелів"

ХНУРЕ кафедра Інформатики доц. Яковлева О.В.

14

ДЗ № 4 Підготовка до самостійної роботи на тему "Реляційна алгебра"

Guest

guestNo

guestName

guestCity

1

Іваненко

Харків

2

Петренко

Харків

3

Сидоренко

Київ

4

Іваненко

Київ

5

Сміт

Відень

Hotel

hotelNo

hotelName

hotelType

hotelCity

1

Мир

3

Харків

2

Харків

4

Харків

3

Оболонь

3

Донецьк

4

Централь

4

Київ

5

Космополіт

5

Харків

Booking

guestNo

hotelNo

roomNo

dateB

dateE

1

1

101

02.09.2023

04.09.2023

3

1

102

05.10.2023

07.10.2023

2

2

201

01.10.2023

15.10.2023

1

2

201

01.10.2023

03.10.2023

4

4

401

07.10.2023

13.10.2023

5

5

401

10.10.2023

14.10.2023

1

5

401

06.10.2023

09.10.2023

Room

hotelNo

roomNo

roomType

price

1

101

стандарт

400

2

101

стандарт

450

3

101

стандарт

400

1

102

стандарт

400

1

201

напівлюкс

500

2

201

напівлюкс

550

2

301

люкс

800

4

401

люкс

1200

5

401

люкс

1800

15 of 16

ХНУРЕ кафедра Інформатики доц. Яковлева О.В.

15

Напишіть вирази реляційної алгебри для таких завдань:

  1. Вивести міста, в яких є готелі (hotelCity) або в яких мешкають клієнти (guestCity), або є готелі та клієнти одночасно (міста з двох таблиць).
  2. Вивести міста, в яких є готелі, але клієнти в яких не проживають (місто є в одній таблиці, але немає в ін.).
  3. Вивести номери готелів, у яких є кімнати з вартістю менше ніж 1000 грн.
  4. Вивести назву готелів, у яких є кімнати з вартістю менше 1000 грн.
  5. Вивести всю інформацію про готелі, в яких є кімнати з вартістю менше ніж 1000 грн. (виводити номер готелю, назву, місто розташування) (напівз'єднання).
  6. Вивести список усіх гостей, які заїжджали в наші готелі після 07.10.2023 (виводити номер гостя і прізвище, для яких поле dateB>' 07.10.2023')
  7. Вивести клієнтів, які зупинялися в готелях, розташовані у місті Харків (вивести номер клієнта, прізвище клієнта, назву готелю).
  8. *Вивести клієнтів, які знімають готельні номери в тих містах, у яких вони і проживають (вивести номер клієнта, прізвище, місто проживання клієнта, назву готелю).
  9. Вивести прізвища клієнтів, які зупинялися в номерах типу "люск" і "напівлюск".
  10. Вивести список гостей, які відвідали всі наші готелі, розташовані в Харкові (виводити номери гостей) (ділення).

ДЗ № 4 Підготовка до самостійної роботи на тему "Реляційна алгебра"

16 of 16

Питання

ХНУРЕ кафедра Інформатики доц. Яковлева О.В.

16