Главная страница

конеспект реляц алгебра. 01 Реляционная алгебра. Практическая работа Реляционная алгебра. Цель занятия Изучение основ реляционной алгебры


Скачать 272.5 Kb.
НазваниеПрактическая работа Реляционная алгебра. Цель занятия Изучение основ реляционной алгебры
Анкорконеспект реляц алгебра
Дата12.10.2022
Размер272.5 Kb.
Формат файлаdoc
Имя файла01 Реляционная алгебра.doc
ТипПрактическая работа
#728810

Дисциплина "Базы данных"

Практическая работа №

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


Цель занятия: Изучение основ реляционной алгебры.

В основе реляционной алгебры лежит идея о том, что так как отношение – это множество кортежей, то и средства манипулирования отношениями должны быть такими же, как традиционные теоретико–множественные операции, дополненные специфическими для баз данных операциями.

Расширенный начальный вариант алгебры, опеределенный Коддом, состоит из восьми алгебраических операций, которые делятся на два класса – теоретико–множественные операции и специальные реляционные операции.

В состав теоретико–множественных операций входят:

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

    Пересечение: возвращает отношение, содержащее кортежи, которые принадлежат одновременно двум заданным отношениям;

    Разность: возвращает отношение. содержащее все кортежи, которые принадлежат первому из двух заданных отношений и не принадлежат второму;

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

произведение отношений.
Специальные реляционные операции включают:

    Проекция: возвращает отношение, содержащее все кортежи заданного отношения, которые остались в этом отношении после исключения из него некоторых атрибутов;

    Соединение: возвращает отношение, кортежи которого – это сочетания двух кортежей (принадлежащих соответственно двум определенным отношениям), имеющих общее значение для одного или нескольких общих атрибутов этих двух отношений ( и такие общие значения в результирующем кортеже появляются только один раз, а не дважды).

    Деление: для двух отношений, бинарного и унарного, возвращает отношение, содержащее все значения одного атрибута бинарного отношения, которые соответствуют (в другом атрибуте) всем значениям в унарном отношении.

    Выборка: возвращает отношение, содержащее кортежи из заданного отношения, которые удовлетворяют указанным условиям;

Кроме того, в состав алгебры включается операция присваивания, позволяющая сохранить в базе данных результаты вычисления алгебраических выражений, и операция переименования атрибутов, дающая возможность корректно сформировать заголовок (схему) результирующего отношения:

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

    Операция присваивания позволяет сохранить результат вычисления реляционного выражения в существующем отношении БД.

Поскольку результатом любой реляционной операции (кроме операции присваивания) является некоторое отношение, можно образовывать реляционные выражения, в которых вместо отношения-операнда некоторой реляционной операции находится вложенное реляционное выражение.

Для алгебры, у которой операции замкнуты относительно понятия отношения, каждая операция должна производить отношение с двумя составляющими: телом и заголовком. Только в этом случае будет действительно возможно строить вложенные выражения. Операции объединения, пересечения взятия разности (вычитания) требуют от отношений-операндов совместимых по типу. Два отношения называются совместимыми по типу, если каждое из них имеет одинаковое множество имен атрибутов и если соответствующие атрибуты определены на одном и том же домене. Если необходимо выполнить операцию объединения, пересечения или вычитания двух отношений, которые почти совместимы по типу, за исключением некоторых различий в именах атрибутов, можно использовать оператор переименования, чтобы сделать эти отношения полностью совместимыми по типу, прежде чем выполнить необходимую операцию.

Примеры использования реляционной алгебры для выражения словесных запросов в виде формулы
Дана БД предприятия, состоящая из трех таблиц

ПОСТАВЩИК

 

 

 

 

ПД

 

 

ПНОМ

ПФАМ

СТАТУС

ГОРОД

 

 

ПНОМ

ДНОМ

ШТ

П1

Иванов

20

Воронеж

 

 

П1

Д1

300

П2

Петров

15

Москва

 

 

П1

Д2

200

П3

Сидоров

10

Москва

 

 

П1

Д3

400

П4

Зайцев

30

Воронеж

 

 

П1

Д4

200

П5

Волков

20

Киев

 

 

П1

Д5

100

 

 

 

 

 

 

П1

Д6

100

ДЕТАЛЬ

 

 

 

 

П2

Д1

300

ДНОМ

ДНАЗВ

ЦВЕТ

ВЕС

ГОРОД

 

П2

Д2

400

Д1

Гайка

Красный

12

Воронеж

 

П3

Д3

200

Д2

Болт

Зеленый

17

Москва

 

П4

Д2

200

Д3

Шайба

Голубой

17

Минск

 

П4

Д4

300

Д4

Шайба

Красный

14

Воронеж

 

П4

Д5

400

Д5

Шуруп

Голубой

12

Москва

 

 

 

 

Д6

Гвоздь

Красный

19

Воронеж

 

 

 

 


 

Построить выражения реляционной алгебры, которые позволят получить ответ на вопросы:



  1. Получить имена поставщиков, которые поставляют деталь Д2



ПНОМ

ДНОМ

ШТ

ПФАМ

СТАТУС

ГОРОД

П1

Д1

300

Иванов

20

Воронеж

П1

Д2

200

Иванов

20

Воронеж

П1

Д3

400

Иванов

20

Воронеж

П1

Д4

200

Иванов

20

Воронеж

П1

Д5

100

Иванов

20

Воронеж

П1

Д6

100

Иванов

20

Воронеж

П2

Д1

300

Петров

15

Москва

П2

Д2

400

Петров

15

Москва

П3

Д3

200

Сидоров

10

Москва

П4

Д2

200

Зайцев

30

Воронеж

П4

Д4

300

Зайцев

30

Воронеж

П4

Д5

400

Зайцев

30

Воронеж





ПНОМ

ДНОМ

ШТ

ПФАМ

СТАТУС

ГОРОД

П1

Д2

200

Иванов

20

Воронеж

П2

Д2

400

Петров

15

Москва

П4

Д2

200

Зайцев

30

Воронеж





ПФАМ

Иванов

Петров

Зайцев



Выражение:
 

 

  1. Получить имена поставщиков, которые поставляют по крайней мере одну красную деталь

 

 

 

 

 



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

 

 

 

 

  1. Получить номера поставщиков, поставляющих по крайней мере все те детали, которые поставляет поставщик П2

 

 

 

  1. Получить имена поставщиков, которые не поставляют деталь Д2

 

 

 

 

 


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


Отношение Владелец










НомерВлад

ФИО

Улица

Дом, Кв

Тел

11

Николаев И.П.

ул.Комсомольская

д.165, кв 56

42-26-58

12

Антонов А.П.

ул.Ленина

д.1а

25-78-96

21

ООО "Весна"

пр.Победы

д.80, кв.1

73-24-15

22

ЗАО "Персей"

Ул.Горького

д.25б

55-66-59


НомерВлад – номер владельца недвижимости;

ФИО – Фамилия, имя, отчество либо наименование владельца;

Улица, Дом,Кв – место жительства либо расположения владельца;

Тел – телефон.


Отношение Объект













НомерОб

Тип

Улица

Дом, Кв

КолКом

РазмерПлаты

НомерВлад

105

дом

ул. Железнодорожная

д.76

3

200

11

107

дом

ул. Комсомольская

д.2

3

185

12

108

дом

ул.Кирпичная

д.15

2

150

21

15

кв-ра

ул.Комсомольская

д.157, кв.12

2

450

22

14

кв-ра

пр.Мира

д.17, кв.22

1

120

11

16

кв-ра

Пр.Мира

д.122, кв.11

1

200

22

17

кв-ра

ул.Ленина

д.456,кв.5

1

200

12

18

кв-ра

ул.А.Буюклы

д.25, кв.13

3

600

12

19

кв-ра

ул.Чехова

д.68, кв.23

2

400

11

20

кв-ра

ул.Горького

д.17, кв.135

1

250

21

110

дом

ул.Колхозная

д.12

2

150

21

111

дом

ул.Колхозная

д.22

2

180

11

112

дом

ул.Лермонтова

д.16

3

300

12

НомерОб – номер объекта недвижимости;

Улица, Дом,Кв – место расположения объекта недвижимости;

Тип – дом, кв-ра, коттедж или другой вид жилья;

КолКом – количество комнат;

РазмерПлаты – арендная плата за месяц ;

НомерВлад – номер владельца, которому принадлежит объект.


Отношение Клиент
















НомКлиента

Имя

Улица

Дом, Кв

Тел

ПредпочтТип

МаксПлата

13-03

Петров В.И

ул. Украинская

д.67, кв.69

73-15-69

1-к

120

17-02

Васильев Н.А

ул.Бумажная

д.25

55-68-96

2-к

250

01-02

Ветров Г.Б.

пр.Мира

д.19, кв.13

71-11-87

дом

150

22-03

Долгова Н.Н.

пр.Мира

д.193, кв.58

42-63-78

1-к

100

27-02

Перова Е.И

ул.Ленина

д.125, кв.69

73-56-42

2-к

200

17-03

Антонова Н.А

ул.Бумажная

д.52

42-12-45

2-к

250

18-02

Степанов Г.Б.

пр.Мира

д.369,кв.95

25-32-12

2-к

200


НомерКлиента – номер клиента;

Имя– имя клиента;

Улица, Дом,Кв – место жительства клиента;

Тел – телефон;

ПредпочтТип – пожелание клиента относительно количества комнат;

МаксПлата – пожелания клиента по арендной плате за месяц ;
Отношение Договор

НомДог

ДатаПодпис

СрокДейств

НомерОб

НомКлиента

Комиссионные

Д-01-2004-1

17.01.2004

25.04.2004

14

13-03

36,00

Д-01-2004-2

18.01.2004

18.07.2004

108

 17-03

90,00

Д-01-2004-3

25.01.2004

25.04.2004

107

27-02

57,00

Д-04-2004-15

26.04.2004

26.07.2004

14

22-03

36,00

Д-02-2004-4

02.02.2004

02.02.2005

110

18-02

180,00

Д-02-2004-5

05.02.2004

05.09.2004

111

18-02

126,00

Д-04-2004-16

25.04.2004

25.10.2004

107

27-02

114,00

Д-02-2004-6

16.02.2004

16.09.2004

20

17-03

175,00

Д-02-2004-7

21.02.2004

21.05.2004

16

17-02

60,00

Д-02-2004-8

29.02.2004

29.08.2004

17

17-03

120,00

Д-03-2004-9

01.03.2004

01.09.2004

105

27-02

120,00

Д-03-2004-10

03.03.2004

03.06.2004

112

17-02

90,00


НомДог – номер договора;

ДатаПодпис – дата подписания договора;

СрокДейств – срок действия договора;

НомерОб – номер объекта недвижимости;

НомерКлиента – номер клиента;

Комиссионные – плата агентству за оформление сделки.

Вариант1


  1. Составить список всех домов.

  2. Получить список клиентов, арендующих объект с номером 14.

  3. Определить тех клиентов, которые арендуют такие же по типу объекты недвижимости, что и клиент Долгова Н.Н.

  4. Определить адреса квартир, при заключении договоров по которым комиссионные составили больше 100у.е.

  5. Получить номера объектов, арендная плата по которым составляет не более 150 у.е. или которые расположены на той же улице, где живет Ветров Г.Б.



Вариант2


  1. Перечислить все 1-к квартиры, арендная плата по которым меньше 200у.е.

  2. Выбрать адреса домов, которые бы устроили клиента Ветрова Г.Б.

  3. Составить список номеров объектов, по которым не было заключено ни одной сделки.

  4. Выбрать информацию по договорам, заключенным с клиентом Антоновой Н.А.

  5. Вывести всю информацию по договорам, включая имя клиента, адрес, тип жилья.


Вариант3


  1. Перечислить имена и адреса клиентов.

  2. Составить список владельцев, заключивших договора в марте 2004года.

  3. Определить владельцев, которые предлагают для аренды такие же объекты, как и владелец с номером 11.

  4. Выбрать объекты, расположенные на той же улице, где живут их владельцы.

  5. Вывести список типов жилья с указанием их стоимости.


Вариант4


  1. Перечислить номера объектов, арендованных до 01.01.2005г

  2. Составить список владельцев, которые являются собственниками домов.

  3. Вывести список владельцев, являющихся собственниками и дома и квартиры.

  4. Вывести список клиентов и объектов, находящихся на одной улице.

  5. Определить владельца объекта, для которого заключен договор с размером комиссионных 180 у.е.



Вариант5


  1. Составить список адресов объектов недвижимости, находящихся в собственности владельца с номером 21.

  2. Выбрать фамилии людей, которым подойдет жилье по адресу пр.Мира, 17-22.

  3. Получить номера объектов недвижимости, размер арендной платы которых равен максимально возможной плате клиента с номером 18-02.

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

  5. Вывести номера объектов, принадлежащих владельцу Николаеву И.П., размер платы по которым не меньше 200у.е.


Дана БД производственного предприятия, состоящая из четырех таблиц.


ПРЕДПРИЯТИЕ

 

 

Пред#

Название

Рейтинг

Город

180

Электроника

230

Воронеж

230

Гормолзавод

300

Москва

150

Сельмаш

140

Воронеж

190

Хлебозавод

300

Курск

270

Рудгормаш

240

Москва

где

Пред# – номер предприятия, номер общий по некоторым группам городов;

Название – название предприятия;

Рейтинг – рейтинг предприятия по некоторым показателям;

Город – город, в котором находится предприятие.

ПРОДУКЦИЯ

 

 

Прод#

Наименование

Количество

ГородВыпуска

10

Магнитофоны

12000

Воронеж

20

Кровати

15000

Москва

30

Тракторы

20000

Воронеж

40

Кухни

30000

Орел

50

Продукты

10000

Воронеж

где

Прод# – номер продукции;

Наименование – наименование продукции;

Количество – стоимость продукции, выпускаемой в год в данном городе;

ГородВыпуска – город, в котором указанная продукция выпускается.


Работник

 

 

 

ТН

Фамилия

ГородПрожив

День_рожд

Пред#

55

Иванов

Воронеж

15.03.02

180

10

Петров

Москва

17.02.95

230

100

Сидоров

Воронеж

03.12.93

150

190

Иванов

Курск

18.04.91

190

где

ТН – номер личности;

Фамилия – фамилия человека;

ГородПрожив – город проживания;

День_рожд – дата рождения данного человека;

Пред# – номер предприятия, где работает данная личность.


ПРЕД_ПРОД

Пред#

Прод#

Год

Выработка

150

30

2000

150

180

10

2000

100

190

50

2001

50

230

50

2001

120

270

20

2002

50

где

Пред# – номер предприятия;

Прод# – номер продукции;

Год – год выпуска продукции;

Выработка (тыс.руб) – количество продукции данного предприятия.

Вариант6

 

  1. Получить названия предприятий, производящих продукцию с номером 30.

  2. Выбрать информацию обо всех предприятиях, в т.ч. о работниках и продукции.

  3. Выбрать фамилии людей, которые работают на хлебозаводе.

  4. Определить номера предприятий из Воронежа с рейтингом выше 200.

  5. Выбрать имена предприятий, производящих все виды продукции.


Вариант7


  1. Получить имена предприятий, производящих продукцию всех сортов.

  2. Выбрать название продукции, у которой количество потребления в городе находится в диапазоне от 12000 до 15000.

  3. Выбрать фамилии людей, у которых город проживания совпадает с городом нахождения предприятия.

  4. Найти номера работников, работающих на одном предприятии.

  5. Определить название предприятий, которые не производят продукцию с номером 50.


Вариант8


  1. Получить номера предприятий, производящих по крайней мере ту продукцию, которую выпускает предприятие с номером 190.

  2. Выбрать название предприятий, у которых выработка продукции в 2001 г. на единицу работающего составила более 100 тыс. руб.

  3. Определить фамилии людей, работающих на предприятиях в г.Воронеже.

  4. Определить имена предприятий, производящих продукцию с номером «10».

  5. Определить номера предприятий, производящих по крайней мере все виды продукции, производимые предприятием с номером 270.


Вариант9


  1. Выбрать все пары названий городов, для которых предприятие и работники находятся в одном городе.

  2. Выбрать название предприятий, которые производят продукты.

  3. Определить название предприятий, производящих продукцию с номером «50» в 2001 году.

  4. Определить номера предприятий, имеющих в списке работающих по крайней мере одного «Иванова».

  5. Получить номера продукции, которая имеет количество более 15000 или производится предприятием с номером 270.


Вариант10


  1. Получить имена предприятий, не производящих продукцию с номером 50.

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

  3. Определить название продукции с номером «30», имеющей выработку на единицу работающего > 100 тыс. руб.

  4. Найти названия предприятий, производящих по крайней мере одну продукцию с номером 50.

  5. Найти названия предприятий, выпускающих одинаковую продукцию.


написать администратору сайта