- •Анализ словесного описания
- •2. Процесс моделирования.
- •4. Программная реализация проблемной ситуации.
- •5. Создание отношений для данной системы и организация запросов с помощью операций реляционной алгебры и реляционного исчисления. Пусть имеются три отношения:
- •I “Сведения о сотрудниках фирмы”
- •II “Сведения о заработной плате водителей за предыдущий месяц”
- •III “Сведения об ответственности за машины фирмы”
5. Создание отношений для данной системы и организация запросов с помощью операций реляционной алгебры и реляционного исчисления. Пусть имеются три отношения:
I “Сведения о сотрудниках фирмы”
ФИО( fio) |
Должность(prof) |
Стаж(exp) |
Адрес(add) |
Дата поступления на работы |
ЖУКОВ В.В. |
ДИРЕКТОР |
10 |
ГАГАРИНСКИЙ ПР.9-12 |
19.07.89 |
СИДОРОВ П.П |
БУХГАЛТЕР |
15 |
РЯЗАНСКИЙ ПР.12-56 |
03.11.89 |
ПЕТРОВ В.А |
ВОДИТЕЛЬ |
5 |
ЗЕЛЕНОГРАДСКАЯ УЛ.4-5 |
07.07.89 |
ОРЛОВ Р.Е |
ВОДИТЕЛЬ |
10 |
ХОРОШЕВСКОЕ Ш.12-177 |
16.08.90 |
РОМАНОВ Е.Е |
ВОДИТЕЛЬ |
8 |
УЛ.АКАДЕМИКА ВАРГИ112-45 |
21.07.89 |
БАГРОВ И.Т. |
ВОДИТЕЛЬ |
19 |
МИЧУРИНСКИЙ ПР.78-12 |
25.04.91 |
II “Сведения о заработной плате водителей за предыдущий месяц”
ФИО (fio) |
ЗАРПЛАТА(sal) |
ПЕТРОВ В.А. |
1050000 |
ОРЛОВ Р.Е. |
945000 |
РОМАНОВ Е.Е |
800000 |
БАГРОВ И.Т. |
1275000 |
III “Сведения об ответственности за машины фирмы”
НОМЕР МАШИНЫ(ncar) |
МАРШРУТ(line) |
ФИО ВОДИТЕЛЯ(fio) |
5647мма |
2 |
РОМАНОВ Е.Е |
4426мма |
1 |
ОРЛОВ Р.Е. |
5723мма |
3 |
ПЕТРОВ В.А |
8967мма |
5 |
БАГРОВ И.Т. |
Далее, к построенным отношениям можно построить несколько запросов с помощью операций реляционной алгебры и реляционного исчисления:
1) Найти всех водителей 1 маршрута, у которых заработная плата превышает 900000 руб.
Решение: {V[fio]/(V1 ( ОТ)((V2(ЗП)((V1(line)={“1”})((V2(sal)>1000.000)}
В результате выведется фамилия (из введенных): Орлов
В терминах реляционной алгебры данный запрос описывается так:
ФИО (sel Маршрут=“1” (ОТ) join Зарплата>900.000 (ЗП))
2) Напечатать фамилии сотрудников фирмы, не являющихся водителями, стаж которых превышает 5 лет:
Решение: {V[fio]/(V1 ( СФ)((V1(prof)<>{“водитель”})((V1(exp)>{“5”})}
В терминах реляционной алгебры: proj ФИО( ФИО (СФ) difference ФИО(ЗП) sel Стаж>5 (СФ))
3) Найти водителей, которые являются сотрудниками фирмы с 1989 г.
Решение: {V[fio]/(V1(СФ)((V1(prof)={“водитель”})((V1(date)>=“01.01.89”)}
в терминах реляционной алгебры: proj ФИО (sel Должность=“водитель” and Дата>=“01.01.89” (СФ))
4) Найти адрес водителя, работающего на машине с номером “4426мма”
Решение: {V[addr]/(V1(CФ)((V2(ОТ)((V1(fio)=V2(fio))((V2(ncar)={“4426мма”})}
в терминах реляционной алгебры: proj Адрес (sel Номер машины=“4426мма” join СФ)
5) Вывести номера машин 5-го маршрута, которыми управляют водители со стажем не менее 3-х лет.
Решение: {V[ncar]/(V1(СФ)((V2(ОТ)((V2(line)=“5”)((V1(exp)>=3)((V1(fio)=V2(fio)}
в терминах реляционной алгебры: proj Номер машины(sel Cтаж>=“3” (CФ) join sel Номер маршрута=“5” (OT)).