Отчет по лабораторным работам 1 2 по дисциплине распределенные вычисления и приложения Работа с данными из удаленных источников в Учёте отправлений и грузов
Скачать 0.49 Mb.
|
ФЕДЕРАЛЬНОЕ АГЕНТСТВО СВЯЗИ Ордена Трудового Красного Знамени федеральное государственное бюджетное образовательное учреждение высшего образования Московский технический университет связи и информатики Кафедра информационных систем ОТЧЕТ ПО ЛАБОРАТОРНЫМ РАБОТАМ № 1 - 2 по дисциплине РАСПРЕДЕЛЕННЫЕ ВЫЧИСЛЕНИЯ И ПРИЛОЖЕНИЯ «Работа с данными из удаленных источников в Учёте отправлений и грузов» Выполнил: Габдрахманов Ф.М. группа БЭИ1801 Принял: Ванина М.Ф., доцент, к.т.н. Москва, 2021 ОглавлениеЛабораторная работа № 1 3 Упражнение 1. 3 Упражнение 2. 4 Упражнение 3. 5 Лабораторная работа № 2 7 Упражнение 1. 7 Упражнение 2. 8 Упражнение 3. 9 Лабораторная работа № 1Если нужно выполнить чтение данных на удаленном источнике данных, необходим способ объявления источника данных назначения, с которым вы хотите связаться и с которого нужно получить данные. Этими источниками данных могут быть другие экземпляры сервера базы данных SQLServer. SQL Server Management Studio предоставляет интерфейс пользователя для работы с удаленными источниками данных. На рисунке представлено два объекта: DESKTOP-AEHCNEV\MSSQLSERVER01 – сервер клиента DESKTOP-AEHCNEV – сервер БД SQL Server предлагает два разных подхода к управлению соединениями с удаленными источниками данных: Управление информацией посредством установки нерегламентируемых соединений с внешними источниками данных. Управление информацией посредством установки связанных серверов. Рассмотрим технологию использования нерегламентируемых соединений с внешними источниками данных. Упражнение 1.В среде SQL Server Management Studio выполним соединение с сервером. На сервере БД выбираем пункт «Аспекты». Далее, в диалоговом окне «Просмотр аспектов» разворачиваем список «Аспект»: и выберем аспект «Настройка контактной зоны (Surface Area Configuration)» В области «Свойства аспекта» выбираем необходимое значение свойства «AdHocRemoteQueriesEnabled» Упражнение 2.В среде SQL Server Management Studio сервера «DESKTOP-AEHCNEV» выбираем «Создать запрос», чтобы открыть окно нового запроса. В окно запроса вводим следующий код: SELECT a.* FROM OPENROWSET('SQLNCLI', 'Server=DESKTOP-AEHCNEV;Trusted_Connection=yes;', 'SELECT * FROM sudno_v2.dbo.Otpravlenie') AS a; После выполнения, получаем результат: Для ускорения доступа к удаленным данным код, обеспечивающий удаленную выборку, оформляем в виде представления. Для его размещения на сервере клиента создадим новую базу данных «Справка». В обозревателе объектов сервера клиента выбираем «Создать запрос», чтобы создать нужное представление. Вводим следующий код: CREATE VIEW [Просмотр списка отправлений] AS SELECT a.* FROM OPENROWSET('SQLNCLI', 'Server=DESKTOP-AEHCNEV;Trusted_Connection=yes;', 'SELECT * FROM sudno_v2.dbo.Otpravlenie') AS a; Проверим получение данных с удаленного сервера: Упражнение 3.Функция OPENDATASOURCE предоставляет сведения о нерегламентированном подключении в виде элемента имени объекта, состоящего из четырех частей, без использования имени связанного сервера. Находясь в базе данных сервера «DESKTOP-AEHCNEV\MSSQLSERVER01» обеспечим просмотр данных таблицы dbo.[Sudno], которая находится в базе данных «sudno_v2» на удаленном сервере «DESKTOP-AEHCNEV». Для этого создадим запрос, находясь в среде сервера «DESKTOP-AEHCNEV»: SELECT * FROM OPENDATASOURCE('SQLNCLI', 'Data Source=DESKTOP-AEHCNEV;Integrated Security=SSPI') .sudno_v2.dbo.Sudno Результат выполнения: Для ускорения доступа к удаленным данным код, обеспечивающий удаленную выборку, оформим в виде представления: CREATE VIEW [Информация о суднах] AS SELECT * FROM OPENDATASOURCE('SQLNCLI', 'Data Source=DESKTOP-AEHCNEV;Integrated Security=SSPI') .sudno_v2.dbo.Sudno Проверим работоспособность представления: Лабораторная работа № 2Рассмотрим технологию использования управления информацией посредством установки связанных серверов. Упражнение 1.Чтобы установить связь сервера DESKTOP-AEHCNEV\MSSQLSERVER01 с сервером DESKTOP-AEHCNEV в обозревателе объектов сервера DESKTOP-AEHCNEV\MSSQLSERVER01 щелкнем правой кнопкой мыши по «Объекты сервера», выберем «Создать» и затем выбираем «Связанный сервер». В поле «Связанный сервер» вводим имя создаваемого связанного сервера. Далее выбираем для переключателя «Тип сервера» - «Сервер SQL Server». На странице «Безопасность» в списке переключателей выберем «Устанавливать с использованием текущего контекста безопасности имени входа». Аналогичным образом устанавливаем связь сервера DESKTOP-AEHCNEV с DESKTOP-AEHCNEV\MSSQLSERVER01. Упражнение 2.После создания связанного сервера доступ к нему может осуществляться через распределенные запросы, обращающиеся к таблицам на связанном сервере при помощи инструкций SELECT, INSERT, UPDATE и DELETE с именем, относящимся к такому серверу. Находясь в среде SQL Server Management Studio сервера «DESKTOP-AEHCNEV» обеспечить просмотр данных, находящихся на связанном сервере «DESKTOP-AEHCNEV\MSSQLSERVER01» в базе данных «MedUchet». Для того, чтобы посмотреть данные из таблицы «Vrach», создадим запрос, находясь в среде сервера «DESKTOP-AEHCNEV»: select * from [DESKTOP-AEHCNEV].sudno_v2.dbo.[Otpravlenie]; Для того, чтобы получить отчет по записям из БД sudno_v2, в окно запроса введем следующий код: select o.NumOtprav, p.Poluch, ot.Otprav from [DESKTOP-AEHCNEV].sudno_v2.dbo.[Otpravlenie] o inner join [DESKTOP-AEHCNEV].sudno_v2.dbo.[Poluchatl] p on o.INNpol = p.INNpoluch inner join [DESKTOP-AEHCNEV].sudno_v2.dbo.[Otpravitel] ot on o.INNotprav = ot.INNotpr; Результат: Упражнение 3.По умолчанию вызовы удаленных процедур (RPC) в SQL Server отключены (такая конфигурация усиливает безопасность сервера, уменьшая его контактную область, подверженную атакам). Перед использованием вызовов удаленных процедур необходимо включить эту функцию. Находясь в среде SQL Server Management Studio сервера «DESKTOP-AEHCNEV» обеспечить вызов процедуры dbo.Пациенты_по_районам_проживания, находящейся на связанном сервере «DESKTOP-AEHCNEV\MSSQLSERVER01» в базе данных «MedUchet». Подключимся к серверу DESKTOP-AEHCNEV и выполним следующий код Transact-SQL для сервера DESKTOP-AEHCNEV\MSSQLSERVER01, который дополнительно настроит его на выполнение вызовов RPC по отношению к сервер DESKTOP-AEHCNEV\MSSQLSERVER01: EXEC master.dbo.sp_serveroption @server=N' DESKTOP-AEHCNEV\MSSQLSERVER01'', @optname=N'rpc', @optvalue=N'true' GO EXEC master.dbo.sp_serveroption @server= N' DESKTOP-AEHCNEV\MSSQLSERVER01', @optname=N'rpc out', @optvalue=N'true' GO На сервере DESKTOP-AEHCNEV\MSSQLSERVER01 создадим хранимую процедуру Пациенты_по_районам_проживания Create procedure Партия_по_городу_отправки @gor nchar(100) as select [NumPart], [DataOtprav], [PointA], [PointB] from [dbo].[Partiya] where PointA= @gor На сервере DESKTOP-AEHCNEV\MSSQLSERVER01 выполним хранимую процедуру, находящуюся на удаленном сервере DESKTOP-AEHCNEV: |