lab2_2012_91 (Методические указания по выполнению лабораторной работы №2)
Описание файла
Файл "lab2_2012_91" внутри архива находится в папке "Методические указания по выполнению лабораторной работы №2". Документ из архива "Методические указания по выполнению лабораторной работы №2", который расположен в категории "". Всё это находится в предмете "постреляционные базы данных" из 9 семестр (1 семестр магистратуры), которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. Архив можно найти в разделе "книги и методические указания", в предмете "постреляционные базы данных" в общих файлах.
Онлайн просмотр документа "lab2_2012_91"
Текст из документа "lab2_2012_91"
ЛР2 Постреляционные базы данных, 2012 г. ИУ5-91 7
Лабораторная работа «Методы взаимодействия с ПБД на примере Cache` »
по дисциплине «Постреляционные базы данных»
Цель работы:
-
Изучить различные технологии взаимодействия внешних приложений с Cache` и работы с XML.
-
Освоить методы обращения к\из СУБД Cache` используя объектный подход и реляционное представление. Освоить методы работы с XML и веб в объектных и объектно-реляционных СУБД.
-
Получить навыки работы с инструментальными средствами среды Cache`, реляционных СУБД и объектных языков программирования для организации их взаимодействия.
Время выполнения:
Время выполнения лабораторной работы 4 часа.
Пункты задания для выполнения:
Задание 1. Обращение из внешней СУБД или приложения к объектам Cache` через ODBC драйвер
1.1. Определить в среде Cache` Studio класс (или использовать созданные в ЛР1)
Класс "Vuz"(Вуз) - хранимый класс. Содержит свойства:
-
abbr - название - строковое,
-
city - город - строковое,
-
year – год основания – целое.
-
Inf() - метод экземпляра, который возвращает строку вида: «Название — город — год — количество_факультетов»,
-
Create(название,город,год) - (и хранимая процедура), который проверяет существование объекта вуза с названием и, если он существует, то открывает его, иначе создает новый объект и устанавливает поле названия. Затем устанавливает значения полей город и год, сохраняет объект. Метод имеет входные параметры: название, город и год вуза со значениями по умолчанию; и выходной параметр — созданный объект,
-
индекс типа IDKEY на поле название.
Используя Портал и/или Терминал создать объекты класса Вуз. В Терминале вызвать созданные методы и проверить их работоспособность. В Портале проверить содержимое таблицы Вуз.
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 (город) — строковое (ключ),
-
cnt (количество_вузов) — целое.
Создать ODBC драйвер для обращения к внешней БД.
В среде Cache` Портал создать шлюз SQL (раздел Конфигурация) для обращения к ODBC драйверу и связанную связанную таблицу к таблице Города (раздел Портала SQL).
Просмотреть через Портал содержимое связанной таблицы.
3.2. Работа со связанной таблицей
В среде Cache` Портал выполнить SQL- запросы по просмотру и изменению записей в таблицу Города. Проверить в Портале и внешней БД содержимое таблицы Города.
В Терминале создать объект класса Города, заполнить и сохранить его в БД (методы New(), Save()). Проверить в Портале и внешней БД содержимое таблицы Города.
Открыть объект класса Города и изменить его свойства. Проверить в Портале и внешней БД содержимое таблиц Города и Вуз.
3.3. Добавление методов к связанной таблице
В среде Cache` Студия открыть класс, соответствующий связанной таблице ГОРОДА и добавить к ней метод:
-
show(год) - метод экземпляра, который возвращает для текущего города строку, содержащую количество вузов, находящихся в данном городе с годом, больше указанного.
В Терминале открыть объект класса Города и вызвать для него метод show(). Проверить в Портале и внешней БД содержимое таблиц Города и Вуз.
Задание 4. Преобразование XML и реляционных данных
4.1. Определить в среде MS SQL Server Management Studio схему БД:
В среде SQL Server Management Studio lab2_91. В БД создать таблицы:
таблица "Vuz"(Вуз). Содержит свойства:
-
idvuz — целое (PK, автоинкремент),
-
abbr - название - строковое,
-
city - город - строковое,
-
year – год основания – целое.
таблица"Fuculty" (факультет) , содержит свойства:
-
fid (ИД) — uniqueidentifier (PK, по умолчанию = newid())),
-
fname - название – строковое (обязательное),
-
ofvuz — целое (FK на idvuz в таблице город).
Заполнить таблицу тестовыми значениями.
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 (создание новых элементов с атрибутами и вложенными элементами):
-
Список факультетов, расположенных в МГУ,
-
Список вузов с названием и количеством факультетов,
-
Список вузов, не имеющих факультеты, и их атрибуты.
Дополнительное задание:
Задание 6: Работа с объектной базой данных по технологии ActixeX
6.1. Работа внешнего приложения с объектной БД через ActixeX
Создать в среде Visual Studio на языке с++ или с# приложение (оконное или консольное), которое обращается к классу Вуз по технологии ActixeX и выполняет следующие действия:
-
отобразить содержимое таблицы Вуз с фильтром, например, по городу (работа с RecordSet);
-
выполнить запрос на добавление записи в таблицу Вуз;
-
выполнить хранимую процедуру create().
Проверить в Портале добавление объектов.
-
создать объект Вуз (указать поля название, год, город) через фабрику объектов;
-
создать объект Вуз через метод класса create().
-
ввести название вуза, проверить его существование, открыть и выполнить метод Inf() для текущего объекта. Результат выполнения метода отобразить пользователю.
Проверить в Портале добавление объектов.
6.2. Работа объектной БД с объектами ActixeX
В среде Cache` Studio в класс Вуз добавить метод:
-
print() - метод экземпляра, который выводит в файл (имя файла = название вуза) полную информацию о вузе. Реализовать метод обращением к объекту ActiveX FileSystemObject (или аналогичный).
Продемонстрировать работу метода в терминале или Visual Studio.
Задание 7: Создание объектов на основе внешних реляционных данных
7.1. Добавление методов к связанной таблице
В среде Cache` Студия открыть класс, соответствующий связанной таблице и добавить к ней методы:
-
fill() - метод класса, который заменяет содержимое таблицы Города на результат выполнения запроса к таблице Вуз, например, через встроенный SQL и динамические запросы. Входных и выходных параметров нет.
-
show() - метод экземпляра, который возвращает для текущего города строку, содержащую список вузов в данном городе. Строка формируется, например, на основе запроса к таблице Вуз (с параметром — название города) и вызова метода Inf() для полученного списка вузов. Используется динамический запрос %ResultSet или курсов.
В Терминале создать объект класса Города, заполнить и сохранить его в БД (методы New(), Save()). Проверить выполнение метода класса fill(). Открыть объект класса Города и вызвать для него метод show(). Проверить в Портале и внешней БД содержимое таблиц Города и Вуз.
7.2. Добавление вычисляемых свойств к связанной таблице
В среде Cache` Студия открыть класс, соответствующий связанной таблице и добавить к ней вычисляемое свойство:
-
min_years — минимальный возраст для вузов данного города (доступен для чтения и записи).
В Терминале открыть объект класса Города, просмотреть и именить его возраст. Проверить в Портале и внешней БД содержимое таблиц Города и Вуз.
Задание 8: Создание Веб-интерфейса к объектной базе данных на языке CSP
Написать в среде Cache` Studio веб-сценарии по технологии Cache Server Pages и продемонстрировать их работоспособность через интернет-браузер. Сценарии должны выполнять следующие функции:
-
отображение списка всех вузов (с фильтром по городу),
-
отображение списка всех фукультетов по выбранному вузу,
-
добавление вуза (с атрибутами),
-
удаление вуза (с запросом на подтверждение),
-
редактирование сведений о вузе.
Задание 9. Импорт и экспорт объектов в формате XML
9.1. Подготовка класса к экспортированию
Определить класс Вуз (и Факультет) как наследник от класса %XML.Adaptor и задать для его полей параметры XML проекции:
-
название — элемент,
-
город — элемент,
-
год — атрибут,
-
факультет — вложеный элемент.
9.2. Экспорт объектов в XML
В среде Cache` Terminal продемонстрировать (или написать и вызвать аналогичную программу) сохранение в файле формата XML объектов класса Вуз. Продемонстрировать содержимое XML файла в текстовом редакторе.
9.3. Импорт объектов из XML
Создать в текстовом редакторе XML файл, содержащий описание вуза. В среде Cache` Terminal продемонстрировать (или написать и вызвать аналогичную программу) извлечение из файла в формате XML и сохранение в базе данных объектов класса Вуз.
В Портале продемонстрировать содержимое таблицы Вуз.