Вы находитесь на странице: 1из 8

МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

им. Н.Э. Баумана

Кафедра «Системы обработки информации и управления»

ОТЧЕТ
Лабораторная работа №6 по курсу
"Постреляционные базы данных"

(количество листов)

ИСПОЛНИТЕЛЬ:

Студент г. ИУ5-27И ________________


Мьо Мин Сан

"__"_________2017 г.

ПРЕПОДАВАТЕЛЬ:
Виноградова М.В.
__________________

Москва - 2017
__________________________________________________________

Цель работы

1. Изучить различные технологии взаимодействия внешних приложений с Cache`.


2. Освоить методы обращения к\из СУБД Cache` используя объектный подход и
реляционное представление.
3. Получить навыки работы с инструментальными средствами среды Cache`, реляционных
СУБД и объектных языков программирования для организации их взаимодействия.
Среда выполнения
1. СУБД Cache.
2. CУБД MS SQL Server 14.
3. MS Visual Studio 15.
Выполнение
Задание 1. Обращение из внешней СУБД или приложения к объектам Cache` через ODBC
драйвер
1.1. Определить в среде Cache` Studio класс (использовать созданные в ДЗ-1)
Используя Портал и/или Терминал создать объекты класса.
Class User.lab6User Extends %Persistent [Owner ={_SYSTEM}]
{
// username
Property Name As %String [ Required ];

Index IDKEY On Name [ PrimaryKey, Unique ];

// age of Users
Property Age As %Integer [ Required ];
}
1.2. Создание и использование ODBC драйвера для обращение к объектам Cache`
Создать ODBC драйвер для обращения к созданным в Cache` Studio классам (тип
источника = InterSystem ODBC, IP = 127.0.0.1, порт = 1972, область Cache` = USER,
пользователь = _system, пароль = 5165).
Обратиться из внешней СУБД (например, MS Access или MS SQL Server) или из среды
разработки с использованием компонентов работы с таблицами через созданный ODBC-
драйвер и установить соединение с таблицей класса (п.1.1). Выполнить следующие
действия:
 Просмотреть содержимое таблицы.
 Проверить добавления, изменения и удаление записей таблицы (в MS Sql Server и в
Портале).

INSERT INTO [CACHE]..[SQLUser].[lab6User] (UserName,Age)


VALUES ('myominsan',25);

SELECT * FROM [CACHE]..[SQLUser].[lab6User]


UPDATE [CACHE]..[SQLUser].[lab6User]
SET Age=22
WHERE UserName='Ubanov';

Задание 2. Работа с объектами Cache` через проекцию классов

2.1. Создание методов класса


В среде Cache` Studio добавить к классу (п.1.1.) методы экземпляра и класса (если
таковых не было). Откомпилировать класс.
В Терминале проверить работу методов.

Method CalculateAge() As %Integer
{
return ..Age-3
}

Результат:

ClassMethod Avg() As %Integer
{
&sql(select count(*)into :c from lab6User)
&sql(select sum(age)into :s from lab6User)
return s/c
}

Результат:
2.2. Создание проекции класса
Создать в MS Visual Studio (или другой среде разработки) проекцию класса (С# или С+
+).
2.3. Использование проекции класса
Создать в среде Visual Studio (или другой) на языке с# или С++ приложение (оконное
или консольное), которое обращается к классу (п.1.1) как к объекту и выполняет следующие
действия:
 создать объект (указать все поля) через стандартные методы (New(), Save()).
static private lab6User Create(CacheConnection constr, string Name, int Age)
{
//Create new Object
lab6User User = new lab6User(constr);

//Define username and his age


User.Name = Name;
User.Age = Age;

//Save object
User.Save();

//Return result
return User;
}

ввести ключевое поле (IDKEY), проверить существование объекта с таким ключом (метод
ExistsId()), открыть (OpenId()) и выполнить метод экземпляра для текущего объекта.
Проверить результат в Портале.

private static lab6User Open(CacheConnection constr, string ID)


{
// Checking institution
bool result = (bool)lab6User.ExistsId(constr, ID);
//If ok ,open it
if (result)
{
return lab6User.OpenId(constr, ID);
}
//if not ok,show null
else return null;
}

Вызвать метод класса (с параметрами и без параметра). Результат выполнения метода


отобразить пользователю.

//Output result without parameter


Console.WriteLine("CalculateAge():" + User.CalculateAge() + "\n");

// Output result method wih parameter Console.WriteLine("En-


ter Param as Integer for CalculateAgeParam(Param):");
//Input
int Param = Int32.Parse(Console.ReadLine());
//Output
Console.WriteLine("CalculateAgeParam(Param):" +
User.CalculateAgeParam(Param) + "\n");
Задание 3. Создание и использование связанных таблиц внешней базы данных.
3.1. Создание связанной таблицы
Создать в среде внешней СУБД (например, MS Access или MS SQL Server) базу данных,
содержащую таблицу по теме ДЗ.
Создать ODBC драйвер для обращения к внешней БД.
В среде Cache` Портал создать шлюз SQL (раздел Конфигурация) для обращения к
ODBC драйверу и связанную таблицу к таблице из внешней БД (см. раздел Портала SQL).
Просмотреть через Портал содержимое связанной таблицы.

3.2. Работа со связанной таблицей


В среде Cache` Портал выполнить SQL- запросы по просмотру и изменению записей во
внешней таблице. Проверить в Портале и внешней БД содержимое таблицы.

update lab6Group set groupName='FM-1 ' where groupName='CM-1'

В Терминале создать объект класса внешней таблицы, заполнить и сохранить его в БД


(методы New(), Save()). Проверить в Портале и внешней БД содержимое таблицы.
Открыть объект класса внешней таблицы и изменить его свойства. Проверить в Портале
и внешней БД содержимое таблицы.

Вам также может понравиться