lab2_2012_92 (Методические указания по выполнению лабораторной работы №2)
Описание файла
Файл "lab2_2012_92" внутри архива находится в папке "Методические указания по выполнению лабораторной работы №2". Документ из архива "Методические указания по выполнению лабораторной работы №2", который расположен в категории "". Всё это находится в предмете "постреляционные базы данных" из 9 семестр (1 семестр магистратуры), которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. Архив можно найти в разделе "книги и методические указания", в предмете "постреляционные базы данных" в общих файлах.
Онлайн просмотр документа "lab2_2012_92"
Текст из документа "lab2_2012_92"
ЛР2 Постреляционные базы данных, 2012 г. ИУ5-92 7
Лабораторная работа «Методы взаимодействия с ПБД на примере Cache` »
по дисциплине «Постреляционные базы данных»
Цель работы:
-
Изучить различные технологии взаимодействия внешних приложений с Cache` и работы с XML.
-
Освоить методы обращения к\из СУБД Cache` используя объектный подход и реляционное представление. Освоить методы работы с XML и веб в объектных и объектно-реляционных СУБД.
-
Получить навыки работы с инструментальными средствами среды Cache`, реляционных СУБД и объектных языков программирования для организации их взаимодействия.
Время выполнения:
Время выполнения лабораторной работы 4 часа.
Пункты задания для выполнения:
Задание 1. Обращение из внешней СУБД или приложения к объектам Cache` через ODBC драйвер
1.1. Определить в среде Cache` Studio класс (или использовать созданные в ЛР1)
Класс "School"(Школа) - хранимый класс. Содержит свойства:
-
num - номер - целое,
-
city - город - строковое,
-
col – ученики (количество учеников) – целое.
-
индекс типа IDKEY на поле номер,
-
Inf() - метод экземпляра, который возвращает строку вида: «Номер — город — ученики — количество_секций»,
-
Create (номер,город) — метод класса (и хранимая процедура), который проверяет существование объекта школа с номером, и, если он существует, то открывает его, иначе создает новый объект и устанавливает поле названия. Затем устанавливает значения полей город (переданное через параметры) и ученики (для нового объекта=200), сохраняет объект. Метод имеет входные параметры: номер и город школы; и выходной параметр — созданный объект.
Используя Портал и/или Терминал создать объекты класса Школа. В Терминале вызвать созданные методы и проверить их работоспособность. В Портале проверить содержимое таблицы Школа.
1.2. Создание и использование ODBC драйвера для обращение к объектам Cache`
Создать ODBC драйвер для обращения к созданным в Cache` Studio классам (тип источника = InterSystem ODBC, IP = 127.0.0.1, порт = 1972, область Cache` = USER, пользователь = _system, пароль = SYS).
Обратиться из внешней СУБД (например, MS Access или MS SQL Server) через созданный драйвер и установить соединение с таблицей Школа. Выполнить следующие действия:
-
Просмотреть содержимое таблицы.
-
Проверить добавления, изменения и удаление записей таблицы (в Access и в Портале).
-
Создать форму (простую) для просмотра и редактирования записей.
-
Выполнить хранимую процедуру (в MS SQL Server).
Задание 2. Работа с объектами Cache` через проекцию классов
2.1. Создание проекции класса
Создать в среде Cache` Studio проекцию класса Школа (для проекции в С++) или в MS Visual Studio (для проекции в С#).
2.2. Использование проекции класса
Создать в среде Visual Studio на языке с++ или с# приложение (оконное или консольное), которое обращается к классу Школа как к объекту и выполняет следующие действия:
-
создать объект Школа (указать поля номер, ученики, город) через стандартные методы (New(), Save()) и метод класса create().
-
ввести номер Школы, проверить ее существование (метод ExistsId()), открыть (OpenId()) и выполнить метод Inf() для текущего объекта. Результат выполнения метода отобразить пользователю.
Проверить в Портале добавление объектов.
Задание 3. Создание и использование связанных таблиц внешней базы данных.
3.1. Создание связанной таблицы
Создать в среде внешней СУБД (например, MS Access или MS SQL Server) базу данных, содержащую таблицу Cities (Города) с полями:
-
city (город) — строковое (ключ),
-
smax (максимальный номер школы) — целое.
Создать ODBC драйвер для обращения к внешней БД.
В среде Cache` Портал создать шлюз SQL (раздел Конфигурация) для обращения к ODBC драйверу и связанную связанную таблицу к таблице Города (раздел Портала SQL).
Просмотреть через Портал содержимое связанной таблицы.
3.2. Работа со связанной таблицей
В среде Cache` Портал выполнить SQL- запросы по просмотру и изменению записей в таблицу Города. Проверить в Портале и внешней БД содержимое таблицы Города.
В Терминале создать объект класса Города, заполнить и сохранить его в БД (методы New(), Save()). Проверить в Портале и внешней БД содержимое таблицы Города.
Открыть объект класса Города и изменить его свойства. Проверить в Портале и внешней БД содержимое таблиц Города и Школа.
3.3. Добавление методов к связанной таблице
В среде Cache` Студия открыть класс, соответствующий связанной таблице ГОРОДА и добавить к ней метод:
-
sett() - метод экземпляра, который устанавливает для текущего города значение, содержащее максимальный номер школы в данном городе или 0 (если в городе нет школ).
В Терминале открыть объект класса Города и вызвать для него метод sett(). Проверить в Портале и внешней БД содержимое таблиц Города и Школа.
Задание 4. Преобразование XML и реляционных данных
4.1. Определить в среде MS SQL Server Management Studio схему БД:
В среде SQL Server Management Studio lab2_92. В БД создать таблицы:
таблица "School"(Школа). Содержит свойства:
-
num - номер – целое (ключ),
-
city - город - строковое,
-
col – ученики (количество учеников) – целое.
Таблица "Section" (секция, кружок), содержит свойства:
-
sid (ИД) — целое (ключ, автоинкремент),
-
sname - название – строковое (обязательное),
-
ofsch — его школа — ссылка (внешний ключ на номер в таблице школа) (обязательное).
Заполнить таблицу тестовыми значениями.
4.2. Преобразовать реляционные данные в формат XML:
В среде построения запросов SQL Server Management Studio продемонстрировать просмотр содержимого таблиц Школа и Секция в формате xml (конструкции select ... for xml) в следующих вариантах:
-
автоматический формат (Школа),
-
все поля — элементы (Школа),
-
все поля - атрибуты (Школа),
-
добавление корневого элемента (Школа),
-
переименование строк (raw) (Школа),
-
получение xml-схемы по умолчанию (Школа),
-
отображение значений NULL (Школа),
-
получение произвольной структуры документа (Секция+Школа), например:
-
название секции — элемент,
-
ее ИД — атрибут,
-
Школа — вложенный элемент,
-
город — элемент Школы,
-
ученики — элемент Школы,
-
номер Школы —атрибут Школы.
4.3. Преобразовать XML-документов в реляционную таблицу:
В среде построения запросов SQL Server Management Studio создать сценарии для создания переменной типа xml и заполнения ее тестовыми данными (можно взять xml документы, полученные ранее). С помощью конструкции select ... from openxml() выполнить:
-
Занесение данных из xml переменной в таблицу Школа.
-
Определить переменную типа таблица и заполнить ее данными из переменной xml. Просмотреть содержимое полученной таблицы.
-
Просмотреть данные из xml переменной в виде следующих наборов:
-
все поля,
-
только номера и города,
-
часть полей с фильтрацией по значению, например, городу,
-
все поля, полученные из сложной структуры xml с переименованием полей.
Задание 5. Построение запросов к XML данным с помощью языка Xquery
5.1. Построить запросы на языке Xquery
В среде построения запросов SQL Server Management Studio создать сценарии для создания переменной типа xml (со сложной структурой) и заполнения ее тестовыми данными (можно взять xml документы, полученные ранее). На языке XQuery выполнить запросы:
-
Проверки существования данных (атрибутов, элементов и их значений) — exist(), например, Школы и секции Школы по номеру и названию.
-
Извлечения данных (атрибутов, элементов и содержимого) — value(), например, номер, город для Школы.
-
Получения фрагмента XML — query(), например, список Школ.
-
Изменения содержимого XML документа - modify(): добавление, изменение и удаление элементов и атрибутов, например, Секции, города и номера школы.
-
Построение таблицы на основе XML документа сложной структуры с переименованием полей – nodes().
5.2. Построить запросы на языке Xquery с применеием FLWR
Использовать конструкции FLWR на языке XQuery и выполнить запросы с применением Xpath (создание новых элементов с атрибутами и вложенными элементами):
-
Список секций в школе номер 1,
-
Список Школ города Москвы с названием и количеством их секций,
-
Список Школ, не имеющих секций, и их атрибуты.
Дополнительное задание:
Задание 6: Работа с объектной базой данных по технологии ActixeX
6.1. Работа внешнего приложения с объектной БД через ActixeX
Создать в среде Visual Studio на языке с++ или с# приложение (оконное или консольное), которое обращается к классу Школа по технологии ActixeX и выполняет следующие действия:
-
отобразить содержимое таблицы Школа с фильтром, например, по городу (работа с RecordSet);
-
выполнить запрос на добавление записи в таблицу Школа;
-
выполнить хранимую процедуру create().
Проверить в Портале добавление объектов.
Добавить в проект следующую функциональность:
-
создать объект Школа (указать поля номер, ученики, город) через фабрику объектов;
-
создать объект Школа через метод класса create().
-
ввести номер Школы, проверить ее существование, открыть и выполнить метод Inf() для текущего объекта. Результат выполнения метода отобразить пользователю.
Проверить в Портале добавление объектов.
6.2. Работа объектной БД с объектами ActixeX
В среде Cache` Studio в класс Школа добавить метод:
-
print() - метод экземпляра, который выводит в файл (имя файла = город_номер_Школы) полную информацию о Школе. Реализовать метод обращением к объекту ActiveX FileSystemObject (или аналогичному). Подключение ActiveX через Activate Wizard (в Студии, меню Инструменты-> AddIns → расширения)
Продемонстрировать работу метода в терминале или Visual Studio.
Задание 7: Создание объектов на основе внешних реляционных данных
7.1. Добавление методов к связанной таблице
В среде Cache` Студия открыть класс, соответствующий связанной таблице и добавить к ней методы:
-
fill() - метод класса, который заменяет содержимое таблицы Города на результат выполнения запроса к таблице Школа, например, через встроенный SQL и динамические запросы. Входных и выходных параметров нет.
-
show() - метод экземпляра, который возвращает для текущего города строку, содержащую список Школ в данном городе. Строка формируется, например, на основе запроса к таблице Школа (с параметром — название города) и вызова метода Inf() для полученного списка Школ. Используется динамический запрос %ResultSet или курсор.
В Терминале создать объект класса Города, заполнить и сохранить его в БД (методы New(), Save()). Проверить выполнение метода класса fill(). Открыть объект класса Города и вызвать для него метод show(). Проверить в Портале и внешней БД содержимое таблиц Города и Школа.