Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
20
Добавлен:
01.05.2014
Размер:
55.81 Кб
Скачать

Лабораторная №3

Запрос А) : вывести на экран сведения, содержащиеся в БД по адресу 0:13

Последовательность запроса

( с учетом уже открытой БД – «Example»)

Access_Record_Get // последовательность запросов в меню.

Read( 0:13 ) // считывает значение с экрана

Информация на экране

RECORD: SUBJECT SIZE: 134 TOTAL FIELDS: 5 PAGE 1 OF 1

SB_SHFP >АС02<

SB_NAME >Интегральные сети связи<

LECT_VOL >48<

LAB_VOL >16<

PRACT_VOL >16<

Запрос Б) найти и выдать информацию о НИРах, шифры, которых изменяются в пределах «АСОИУ-01» - «АСОИУ - 99»

Список команд меню:

Open_Access_Record_KeyScan_KeyFine

/* выбор поля ключа*/

SELECT KEY FIELD

RS_SHFP /* ключ - поле шифра НИР */

Read(АСОИУ-01);

While Next = “АСОИУ%”

{

Next

}

Результаты:

Первая найденная запись:

RS_SHFP >АСОИУ-10<

RS_NAME >Эквивалент<

RS_START_DATE >891219<

RS_FINISH_DATE >911215<

RS_PRICE >80000<

CUSTOMER >НПО Восход<

Следующие: АСОИУ 11,12,13,14,15,16,17,23,29,30,32,37,39,44,45,48,70,90,91

Последняя найденная запись:

RS_SHFP >АСОИУ-91<

RS_NAME >Разработка комплекса моделирования на основе сетей Петри на >

RS_START_DATE >900101<

RS_FINISH_DATE >911230<

RS_PRICE >80000<

CUSTOMER >ЛНПО Красная заря<

Запрос В :

Найти и выдать всю имеющуюся в БД информацию о НИРах, упорядоченную по возрастанию стоимости работ.

Список команд меню:

Open_Access_Set_Last

/* найти последний член в одном из наборов */

select set (RESEARCH_LIST)

while Previous <> EndOfSet

{

Previous

}

/* переходим на последнюю запись и в обратном порядке просматриваем набор*/

/*это связано с убывающим расположением записей по стоимости НИР*/

/* а нам необходимо получить возрастание */

Результаты:

Первая полученная запись

RS_SHFP >АПУ-69<

RS_NAME >Исследование и разработка структур баз данных для ГАП<

RS_START_DATE >900116<

RS_FINISH_DATE >901231<

RS_PRICE >0<

CUSTOMER >НИИ Центр<

n- ая запись:

RS_SHFP >АСОИУ-12<

RS_NAME >Разработка методик и рекомендаций по информационному обеспеч>

RS_START_DATE >900101<

RS_FINISH_DATE >911215<

RS_PRICE >60000<

CUSTOMER >ЛНПО Красная заря<

Последняя запись:

RS_SHFP >ГКВШ-1<

RS_NAME >Информатизация России<

RS_START_DATE >910115<

RS_FINISH_DATE >951231<

RS_PRICE >6000000<

CUSTOMER >ГК РСФСР по ДН и ВШ<

Запрос Г : для НИР с шифром «АСОИУ- 70» найти и выдать фамилии и номера групп всех студентов участвующих в её проведении.

Алгоритм действий:

Находим в поиске нужную НИР.

Делаем её владельцем набора участвующих студентов.

Просматриваем набор студентов, связанный с текущим владельцем.

Список команд меню:

/* находим НИР «АСОИУ - 70» */

Open_Access_Record_Keyscan_Keyfind

Select key field ( RS_SHFP)

Read(«АСОИУ-70»)

/* выбираем данный НИР в качестве владельца набора студентов*/

Open_Access_Currency_Owner

Select set( STUDENTS_IN_RESEARCH )

/* просмотр набора участвующих студентов в текущем НИР

Open_Access_Set_Scan

Select set(STUDENTS_IN_RESEARCH )

Результат:

1. STUDENT {"63300004","633",5,"Кудряшова","Лариса","Владимировна

2. STUDENT {"93300014","933",2,"Крепс","Сергей","Николаевич"}

3. STUDENT {"73300001","733",4,"Тульчинская","Елена","Сергеевна"}

4. STUDENT {"73300002","733",4,"Иванов","Вадимир","Дмитриевич"}

5. STUDENT {"833А0001","833а",3,"Анфилофьев","Андрей","Дементьеви

6. STUDENT {"833А0002","833а",3,"Павлов","Юрий","Капитонович"}

Запрос Д :

Для какой-либо НИР, являющейся работой-компонентой, найти и выдать название комплексной НИР.

Алгоритм действий:

Найти НИР – компоненту

Указываем его как текущий член набора «Компоненты НИР»

Отыскиваем владельца для указанного члена набора.

/* находим НИР - компоненту */

Open_Access_Record_Keyscan_Keyfind

Select key field ( RS_SHFP)

Read(«АСОИУ-2000»)

/* Указываем его как текущий член набора «Компоненты НИР» */

Open_Access_Currency_Member

Select set( PARTS_OF_RESEARCH )

/* Просматрваем данные по владельцу выбранного НИР-компонента */

Open_Access_Set_Owner

Select set(PARTS_OF_RESEARCH )

Результат:

RS_SHFP >АСОИУ-10<

RS_NAME >Эквивалент<

RS_START_DATE >891219<

RS_FINISH_DATE >911215<

RS_PRICE >80000<

CUSTOMER >НПО Восход<

Запрос Е :

Найти и выдать фамилии, ученые степени, должности и месячные оклады преподавателей, участвующих в проведении НИР с шифром «АСОИУ - 14»;

Найти и выдать названия НИР , в которых учавствует кто-либо из преподавателей, участвующих в НИР «АСОИУ -14»

Алгоритм

Находим НИР «АСОИУ - 14» в поиске.

Определить её как владельца набора участвующих преподавателей.

Участвующие преподаватели – RESEARCH_TO_TEACHER

Просматриваю список участвующих преподавателей.

По нему надо найти самого преподавателя

Определить участвующего преподавателя как члена набора «преподаватель в НИРах».

И просмотреть преподавателя- владельца в TEACHER_IN_RESEARCHES

Выбрать одного из преподавателей.

Определить его как владельца набора преподаватель в НИРах.

Выдать данные о НИРах в которых он участвует.

Список команд меню:

/* Находим НИР «АСОИУ - 14» в поиске.

Open_Access_Record_Keyscan_Keyfind

Select key field ( «АСОИУ -14»)

RS_SHFP >АСОИУ-14<

RS_NAME >Разработка состава и структуры типового модуля интегрированн>

RS_START_DATE >910301<

RS_FINISH_DATE >911215<

RS_PRICE >20000<

CUSTOMER ><

/* Определение её как владельца набора участвующих преподавателей.

Open_Access_Currency_Owner

Select set (RESEARCH_TO_TEACHER)

Open_Access_Set_Scan

Select set ( RESEARCH_TO_TEACHER)

/* Определили научную степень и месячный оклад

ENTRY RECORD TYPE RECORD CONTENTS

1. PARTICIPATION {"н.с.",910301,911215,220}

2. PARTICIPATION {"с.н.с.",910301,911215,320}

/* выбираем одного из преподавателей

select ( 1. PARTICIPATION {"н.с.",910301,911215,220} )

JOB >н.с.<

PRT_START_DATE >910301<

PRT_FINISH_DATE >911215<

MONTH_SALARY >220<

/* Определяем участвующего преподавателя как члена набора «преподаватель в НИРах».

Open_Access_Currency_Member

Select set ( TEACHER_IN_RESEARCHES)

/* просмотр преподавателя – владельца

Set_Owner

Select set ( TEACHER_IN_RESEARCHES)

TCH_ID >70001<

TCH_NAME >Смирнов<

TCH_SURNAME >Виктор<

TCH_PATR_NAME >Александрович<

DEGREE >канд.<

DEPT >АСОИУ<

/* Находим названия НИРов в которых участвует данный преподаватель.

Open_Access_Currency_Owner

Select set (TEACHER_IN_RESEARCH)

Set_Scan

Select set ( TEACHER_IN_RESEARCHES)

ENTRY RECORD TYPE RECORD CONTENTS

1. PARTICIPATION {"н.с.",910301,911215,220}

/* в данном случае Смирнов участвует только в одном НИРе

select (1. PARTICIPATION {"н.с.",910301,911215,220} )

Currency_Member

Select set(RESEARCH_TO_TEACHER)

Set_Owner

Select set(RESEARCH_TO_TEACHER)

RS_SHFP >АСОИУ-14<

RS_NAME >Разработка состава и структуры типового модуля интегрированн>

RS_START_DATE >910301<

RS_FINISH_DATE >911215<

RS_PRICE >20000<

CUSTOMER ><

Запрос Ж :

Найти и выдать названия предметов, лабораторные занятия по которым проводятпреподаватели, участвующие в проведении НИР с шифром «АСОИУ-14»

Список команд меню:

/* Находим НИР «АСОИУ - 14» в поиске.

Open_Access_Record_Keyscan_Keyfind

Select key field ( «АСОИУ -14»)

RS_SHFP >АСОИУ-14<

RS_NAME >Разработка состава и структуры типового модуля интегрированн>

RS_START_DATE >910301<

RS_FINISH_DATE >911215<

RS_PRICE >20000<

CUSTOMER ><

/* Определение её как владельца набора участвующих преподавателей.

Open_Access_Currency_Owner

Select set (RESEARCH_TO_TEACHER)

Open_Access_Set_Scan

Select set ( RESEARCH_TO_TEACHER)

/* Определили научную степень и месячный оклад

ENTRY RECORD TYPE RECORD CONTENTS

1. PARTICIPATION {"н.с.",910301,911215,220}

2. PARTICIPATION {"с.н.с.",910301,911215,320}

/* выбираем одного из преподавателей

select ( 1. PARTICIPATION {"н.с.",910301,911215,220} )

JOB >н.с.<

PRT_START_DATE >910301<

PRT_FINISH_DATE >911215<

MONTH_SALARY >220<

/* Определяем участвующего преподавателя как члена набора «преподаватель в НИРах».

Open_Access_Currency_Member

Select set ( TEACHER_IN_RESEARCHES)

/* просмотр преподавателя – владельца

Set_Owner

Select set ( TEACHER_IN_RESEARCHES)

TCH_ID >70001<

TCH_NAME >Смирнов<

TCH_SURNAME >Виктор<

TCH_PATR_NAME >Александрович<

DEGREE >канд.<

DEPT >АСОИУ<

/* Определение Смирнова владельцем набора «Преподаватель по предметам»

Set_Owner

Select set (TEACHER_TO_SUBJECTS)

Set_Scan

Select set (TEACHER_TO_SUBJECTS)

/* получили проведение занятий

ENTRY RECORD TYPE RECORD CONTENTS

1. TEACHING {0,40,20}

2. TEACHING {0,16,16}

/* выбираем одно из занятий и получаем название предмета с лабами */

select ( 1. TEACHING {0,40,20} )

Currency_Member

Select set ( SUBJECT_TO_TEACHERS)

Set_Owner

Select set ( SUBJECT_TO_TEACHERS)

SB_SHFP >АС01<

SB_NAME >Основы автоматизированного управления<

LECT_VOL >60<

LAB_VOL >40<

PRACT_VOL >20<

/* выбираем второй род занятий

Set_Scan

Select set (TEACHER_TO_SUBJECTS)

set ( 2. TEACHING {0,16,16} )

TCH_LECT_VOL >0<

TCH_LAB_VOL >16<

TCH_PRACT_VOL >16<

Currency_Member

Select set ( SUBJECT_TO_TEACHERS)

Set_Owner

Select set ( SUBJECT_TO_TEACHERS)

SB_SHFP >АС02<

SB_NAME >Интегральные сети связи<

LECT_VOL >48<

LAB_VOL >16<

PRACT_VOL >16<

/* Возвращаемся ко второму преподавателю

Open_Access_Set_Scan

Select set ( RESEARCH_TO_TEACHER)

Select( 2. PARTICIPATION {"с.н.с.",910301,911215,320} )

JOB >с.н.с.<

PRT_START_DATE >910301<

PRT_FINISH_DATE >911215<

MONTH_SALARY >320<

Open_Access_Currency_Member

Select set ( TEACHER_IN_RESEARCHES)

/* просмотр преподавателя – владельца

Set_Owner

Select set ( TEACHER_IN_RESEARCHES)

TCH_ID >70006<

TCH_NAME >Шеховцов<

TCH_SURNAME >Олег<

TCH_PATR_NAME >Иванович<

DEGREE >канд.<

DEPT >АСОИУ<

/* Определение Шеховцова владельцем набора «Преподаватель по предметам»

Set_Owner

Select set (TEACHER_TO_SUBJECTS)

Set_Scan

Select set (TEACHER_TO_SUBJECTS)

“ Set has not members “ /* У Шеховцова нет занятий! */