lab1_2012_94 (1037564)
Текст из файла
ЛР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() для их курса.
Характеристики
Тип файла документ
Документы такого типа открываются такими программами, как Microsoft Office Word на компьютерах Windows, Apple Pages на компьютерах Mac, Open Office - бесплатная альтернатива на различных платформах, в том числе Linux. Наиболее простым и современным решением будут Google документы, так как открываются онлайн без скачивания прямо в браузере на любой платформе. Существуют российские качественные аналоги, например от Яндекса.
Будьте внимательны на мобильных устройствах, так как там используются упрощённый функционал даже в официальном приложении от Microsoft, поэтому для просмотра скачивайте PDF-версию. А если нужно редактировать файл, то используйте оригинальный файл.
Файлы такого типа обычно разбиты на страницы, а текст может быть форматированным (жирный, курсив, выбор шрифта, таблицы и т.п.), а также в него можно добавлять изображения. Формат идеально подходит для рефератов, докладов и РПЗ курсовых проектов, которые необходимо распечатать. Кстати перед печатью также сохраняйте файл в PDF, так как принтер может начудить со шрифтами.