lab1_2012_94 (Методические указания по выполнению лабораторной работы №1)
Описание файла
Файл "lab1_2012_94" внутри архива находится в папке "Методические указания по выполнению лабораторной работы №1". Документ из архива "Методические указания по выполнению лабораторной работы №1", который расположен в категории "". Всё это находится в предмете "постреляционные базы данных" из 9 семестр (1 семестр магистратуры), которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. Архив можно найти в разделе "книги и методические указания", в предмете "постреляционные базы данных" в общих файлах.
Онлайн просмотр документа "lab1_2012_94"
Текст из документа "lab1_2012_94"
ЛР1 Постреляционные базы данных, 2012 г. ИУ5-94 8
Лабораторная работа «Модели представления данных в СУБД Cache`»
по дисциплине «Постреляционные базы данных»
Цель работы:
-
Изучить различные модели представления данных в среде Cache`.
-
Освоить методы работы с данными используя прямой доступ к глобалам, объектный подход и реляционное представление.
-
Получить навыки работы с инструментальными средствами среды Cache` Studio и среды Cache` Портал, а также функциями Cache` Object Script для обращения к различным представлениям данных.
Время выполнения:
Время выполнения лабораторной работы 4 часа.
Пункты задания для выполнения:
Задание 1. Освоить методы работы с объектами используя прямой доступ к глобалам, объектный подход и реляционное представление.
1.1. Определить в среде Cache` Studio класс "Course"(Курсы) - хранимый класс. Содержит свойства:
-
name - название - строковое,
-
days – длительность (количество дней) - целое,
-
price – стоимость – целое.
-
индекс типа IDKEY на поле название (создается отдельно через мастер индексов).
Для создания классов используется среда Cache` Studio. Для определения свойств и методов классов используются соответствующие мастера. Откомпилировать класс.
Для просмотра созданных классов используется среда Cache` Портал (раздел System Explorer → Classes, пакет USER) .
1.2. Освоить создание объектов различными методами.
Существующие объекты и их свойства можно просмотреть в среде Cache` Портал в виде таблиц (раздел System Explorer → Просмотр SQL схем, пакет USER, раздел таблицы) и в виде глобалов (раздел System Explorer → Глобалы, пакет USER).
В среде Cache` Terminal на языке Cache` Object Script создать объект класса «Курсы» (метод %New()), определить значения его полей (используя точечную нотацию и команду set) и сохранить в базе данных (метод %Save()):
set o=##class(название класса).%New()
set o.поле=значение
do o.%Save()
В среде Cache` Портал (раздел SQL, пакет USER) продемонстрировать выполнение SQL оператора INSERT для добавления объекта классов «Курсы» (с параметрами название, длительность, стоимость):
insert into таблица(поле1,поле2) values(значение1,значени2)
В среде Cache` Terminal на языке Cache` Object Script создать объект класса «Курсы», используя обращение к глобалам и функции работы со списками ($lb):
set ^глобал(индекс)=$lb(“”,поле1,поле2)
1.3. Освоить работу с объектами различными методами.
В среде Cache` Портал (раздел SQL, пакет USER) продемонстрировать выполнение SQL операторов SELECT для просмотра списка курсов по условию, например, недельных.
В среде Cache` Портал (раздел SQL, пакет USER) продемонстрировать выполнение SQL оператора UPDATE для изменения стоимости коротких Курсов:
update таблица set поле1=значение1, поле2=значение2 where условие
В среде Cache` Terminal на языке Cache` Object Script открыть объект класса «Курсы» (метод %OpenId()), просмотреть и изменить значения его полей (используя точечную нотацию) и сохранить в базе данных (метод %Save()):
set o=##class(название).%OpenId(индекс)
set o.поле=значение
do o.%Save()
1.4. Освоить удаление объектов различными методами.
В среде Cache` Портал (раздел SQL, пакет USER) продемонстрировать выполнение SQL оператора DELETE для удаления объектов:
delete таблица where условие
В среде Cache` Терминал продемонстрировать удаление объектов класса используя вызовы методов %DeleteId (для объектов) и Kill (для глобалов):
do ##class(название).%DeleteId(индекс)
kill ^глобал(индекс)
Задание 2. Освоить методы работы с производными классами в различных представлениях
2.1. Определить в среде Cache` Studio класс «Foreign » (Курсы на иностранном языке - ИноКурсы), производный от класса «Курсы», добавив свойство:
-
lang — язык – строковое.
2.2. Освоить создание объектов производного класса.
В среде Cache` Terminal на языке Cache` Object Script создать объект класса «ИноКурсы» (метод %New()), определить значения его полей (используя точечную нотацию и команду set) и сохранить в базе данных (метод %Save()).
В среде Cache` Портал (раздел SQL, пакет USER) продемонстрировать выполнение SQL оператора INSERT для добавления объекта классов «ИноКурсы» (с параметрами название, длительность, стоимость, язык).
В среде Cache` Terminal на языке Cache` Object Script создать объект класса «ИноКурсы», используя обращение к глобалам и функции работы со списками ($lb).
2.3. Освоить работу с объектами производного класса различными методами.
В среде Cache` Портал (раздел SQL, пакет USER) продемонстрировать выполнение SQL операторов SELECT для просмотра списка всех курсов и ИноКурсов по условию, например, англоязычных или дешевых.
В среде Cache` Terminal на языке Cache` Object Script открыть объект класса «ИноКурсы» (метод %OpenId()), просмотреть и изменить значения его полей (используя точечную нотацию) и сохранить в базе данных (метод %Save()).
Задание 3. Освоить методы работы со связанными объектами в различных представлениях
3.1. Создать Класс "Lesson" (Занятия) - хранимый. Содержит свойства:
-
start - дата_начала – строковое (обязательное) в формате (месяц-день),
-
ofcour — Курс — ссылка (отношение) на объект класса "Курсы" (обязательное), создается как свойство типа «отношение» (при задании связанного поля в другом классе следует указать новое поле «lessons»-«занятия» вместо выбора из списка существующих).
3.2. Освоить создание связанных объектов различными методами.
В среде Cache` Terminal на языке Cache` Object Script создать объект класса «занятия» (метод %New()), определить значения его полей (используя точечную нотацию и команду set) и сохранить в базе данных (метод %Save()).
В среде Cache` Портал (раздел SQL, пакет USER) продемонстрировать выполнение SQL оператора INSERT для добавления объекта классов «занятия».
В среде Cache` Terminal на языке Cache` Object Script создать объект класса «занятия», используя обращение к глобалам и функции работы со списками ($lb).
3.3. Освоить работу со связанными объектами различными методами.
В среде Cache` Портал (раздел SQL, пакет USER) продемонстрировать выполнение SQL операторов SELECT для просмотра списка занятий, их дат, названий и длительности их курсов с сортировкой кусрсам и датам, используя ссылочный синтаксис вместо соединения таблиц.
В среде Cache` Портал (раздел SQL, пакет USER) продемонстрировать выполнение SQL оператора UPDATE для изменения начала недельных занятий по Windows.
В среде Cache` Terminal на языке Cache` Object Script открыть объект класса «занятия» (метод %OpenId()), просмотреть и изменить значения его курса и/или длительности курса (используя точечную нотацию) и сохранить в базе данных (метод %Save()).
Задание 4. Освоить способы определения, переопределения и вызова методов экземпляров.
4.1. Создание и вызов методов класса. Объектный синтаксис и встроенный SQL.
Добавить к классу Курсы метод экземпляра Inf(), который возвращает строку вида:
«Название — (стоимость/длительность) — количество_занятий»
для текущего курса. Метод без параметров. Обращение к полям объекта через «..поле» или «##this.поле». Количество занятий определяется через поле «занятия» (метод коллекции Count() ). Конкатенация строк через подчеркивание: «строка1_строка2». Команда возврата из функции: «quit значение».
Пример метода экземпляра:
Method Summa() As %Integer
{
set var=..поле1 + ..поле2 // присваивание
quit var // вернуть значение
}
Создать объект класса Курсы, используя Портал и SQL команду INSERT или используя Терминал и команды работы с объектами или обращаясь глобалам.
Открыть в терминале объект класса Курсы и вызвать его метод с отображением результата (команда write вывода на экран):
set oref=##class(название).%OpenId(индекс)
write oref.Inf()
Переопределить в классе ИноКурсы метод Inf() для возврата строки вида:
«Номер — (длительность/стоимость) — ближайшая_дата_начала_занятий — язык»
Ближайшая_дата_начала_занятий определяется через встроенный SQL с передачей параметров, например:
set a=«NNN»
&sql(select поле into :b from таблица where поле=:a)
write b
,где a и b — переменные программы, а :a и :b - те же переменные, переданные во встроенный SQL.
Создать объект класса ИноКурсы, открыть его в Терминале и вызвать метод Inf() с отображением результата.
Задание 5. Освоить способы определения, переопределения и вызова методов класса
5.1. Создание и вызов метода класса. Объектный синтаксис
Добавить к классу Курсы метод класса create(название,длительность,стоимость), который проверяет существование объекта Курсы с названием (метод %ExistsId(индекс)), и, если он существует, то открывает его (метод %OpenId(индекс)), иначе создает новый объект (метод %New()) и устанавливает поле названия. Затем устанавливает значения полей длительность (переданное через параметры) и стоимость, сохраняет объект (метод %Save()). Метод имеет входные параметры: название, длительность (по умолчанию=5) и стоимость курсов (по умолчанию=100); и выходной параметр — созданный объект.
При создании метода через мастер следует указать, что он является и хранимой процедурой.
Пример метода класса и хранимой процедуры с параметрами по умолчанию:
ClassMethod create(t As %String = "ХХХ") As org [ SqlProc ]
{
код метода
}
Пример условной конструкции:
if x>10 { a=20 }
else { a=200 }
Вызвать метод класса из Терминала для нового объекта:
do ##class(название).метод(параметры)
или метод экземмпляра для существующего объекта:
set o=##class(название).метод(параметры)
write o.Inf()
Проверить в Портале (раздел Таблицы) добавление и изменение объектов.
В Портале (раздел Хранимые процедуры) вызвать хранимую процедуру, соответствующую методу класса, для добавления нового и изменения существующего объектов.
5.2. Создание и вызов метода класса. Встроенный SQL
Добавить к классу занятия метод класса create(Дата_начала,Курс), который проверяет существование объекта Курс с указанным названием (метод %ExistsId(индекс)), и, если его не существует, то создает его (недельный, по информатике), используя встроенный SQL (параметры передаются как «:переменная»):
&sql(insert into таблица(поля) values(:значения))
, затем создает занятие, используя встроенный SQL (аналогично командой INSERT), для создания занятий по курсу.
Метод имеет входные параметры: название курса и дата_начала. Выходных параметров у метода нет. При создании метода указать, что он является и хранимой процедурой.
Вызвать метод класса из Терминала для создания занятия нового курса и создания секции существующего курса:
do ##class(название).метод(параметры)
Проверить в Портале (раздел Таблицы) добавление объектов. В Портале (раздел Хранимые процедуры) вызвать хранимую процедуру, соответствующую методу класса и проверить результат ее выполнения.
Задание 6. Освоить методы работы с объектом %ResultSet
6.1. Создание процедур. Виртуальные вызова и полиморфизм. Динамический SQL
В среде Cache` Студия создать процедуру OnLang(язык), которая выдает список занятий на указанном языке и информацию об их Курсых. Входной параметр — язык. Процедура создает и выполняет динамический запрос SQL, который возвращает ID занятий на указанном языке, с сортировкой по датам. На основе ID открываются объекты занятий (метод %OpenId()), и на экран выводятся их даты и результат выполнения функции Inf() для их курса.