Особенности создания и работы с реляционным хранилищем данных - Введение в облачные решения Microsoft
Как мы уже говорили в лекциях, хранилище Windows Azure, помимо прочего, подходит для хранения реляционных данных, для этого используются возможности Windows Azure Table. Однако, само по себе, табличное хранилище Windows Azure не хранит данные в реляционном виде. Возникает вопрос, каким образом возможно хранить реляционную структуру и как обеспечить миграцию данных?
Ответов на данные вопросы может быть множество. То как вы решите переносить существующую реляционную структуру данных в облако, зависит целиком от вас самих. Мы продемонстрируем самый простой и очевидный способ - построчное чтение данных из реляционной БД и запись их в таблицу Windows Azure, что и будет целью данной практической работы.
Во-первых, нам понадобится реляционная база данных. В нашей базе будут храниться 3 взаимосвязанные сущности - Адрес, Фирма и Сотрудник.
В данной лабораторной работе мы использовали SQL Management Studio для соединения с базой sqlexpress и выполнения запросов.
Создадим базу данных при помощи запроса 16.1
Create database azureexample
Листинг 16.1.
Теперь необходимо создать таблицы, связи между ними и заполнить их тестовым набором данных. Вы можете проделать это самостоятельно, а можно просто выполнить нижеследующий зарос:
Use azureexample
Create table Address(
AddresID int identity(1,1) primary key,
Country nvarchar(max),
City nvarchar(max),
Street nvarchar(max),
House int
)
Create table Firm(
FirmID int identity(1,1) primary key,
NameOf nvarchar(max),
Telephone nvarchar(10),
Email nvarchar(max),
AddressKey int not null
)
Create table Employee(
EmployeeID int identity(1,1) primary key,
FirstName nvarchar(max),
LastName nvarchar(max),
Telephone nvarchar(10),
FirmKey int
)
Alter table dbo. Firm add constraint
FK_Firm_Address foreign key
(
AddressKey
) references dbo. Address
(
AddresID
) on update no action
On delete no action
Alter table dbo. Employee add constraint
FK_Employee_Firm foreign key
(
FirmKey
)
References dbo. Firm
(
FirmID
)
On update no action
On delete no action
Insert into Address
Values ('RF', 'Tomsk', 'Evergreen Terrace', '247')
Insert into Firm
Values ('Firm1', 'xxx-xx-xx', ' \n Этот адрес e-mail защищен от спам-ботов. Чтобы увидеть его, у Вас должен быть включен Java-Script ', '1')
Insert into Firm
Values ('Firm2', 'xxx-xx-xx', ' \n Этот адрес e-mail защищен от спам-ботов. Чтобы увидеть его, у Вас должен быть включен Java-Script ', '1')
Insert into Employee
Values ('Ivan', 'Ivanov', 'x-xxx-xx','1')
Insert into Employee
Values ('Victor', 'Romanov', 'x-xxx-xx','1')
Insert into Employee
Values ('Alex', 'Petrov', 'x-xxx-xx','2')
Таким образом мы получили три таблицы. Диаграмма данных созданной базы представлена ниже:
Рис. 16.1.
Теперь необходимо решить, каким образом данная реляционная структура может быть перенесена в таблицу. Как вам известно из лекции, таблицу Windows Azure можно соотнести с коллекцией взаимосвязанных сущностей, если проводить аналогии с реляционными базами данных. В то время, как строки таблиц Windows Azure, по сути являются экземплярами конкретных сущностей.
Мы предлагаем следующее очевидное решение:
Создать Windows Azure таблицу "Relational", которая будет содержать в себе сущности Address, Firm и Employee
Ключ секции будет указывать на соответствие строки таблицы Azure экземпляру сущности реляционной БД, т. е. для всех сотрудниковключ секции будет - "Employee"
Значения атрибутов - ключей в реляционных таблицах будут являться значениями RowKey для таблицы "Relational", такими образом пара ключ секции - ключ строки будет являться уникальным идентификатором однозначно указывающим на принадлежность Azure - строки конкретной сущности исходной БД и определяющим экземпляр сущности
Значения остальных атрибутов будут перенесены без изменений.
Мы не видим необходимости в создании нового VS - проекта, поэтому просто изменим WorkerRole. cs проекта, созданного в рамках предыдущей практической работы. А именно, метод Run, чей листинг представлен ниже:
CloudStorageAccount. SetConfigurationSettingPublisher(
(configName, configSettingPublisher) =>
{
Var connectionString =
RoleEnvironment. GetConfigurationSettingValue(configName);
ConfigSettingPublisher(connectionString);
}
);
CloudStorageAccount account = CloudStorageAccount. FromConfiguration Setting("DataConnectionString");
//создание таблицы Windows Azure Table
CloudTableClient _tc = null;
_tc = account. CreateCloudTableClient();
_tc. CreateTableIfNotExist("Relational");
Context context = new Context(account. TableEndpoint, account. Credentials);
//определение параметров подключения к БД, измените строку подключения
//соответствующим образом, для соединения с вашим sql - сервером
SqlConnection conn = new SqlConnection("Data Source=saigon sqlexpress;
Initial Catalog=azureexample; Integrated Security=true;");
//импорт данных из таблицы Address
//указываем команду для чтения данных из базы
SqlCommand cmd = new SqlCommand("SELECT * FROM Address", conn);
Conn. Open();
SqlDataReader adr = cmd. ExecuteReader();
While (adr. Read())
{
//в параметрах метода AddObject указывает имя таблицы и определяем новую сущность класс //Address
Context. AddObject("Relational", new Address
{
PartitionKey = "Address",
RowKey = adr["AddresID"].ToString(),
Country = adr["Country"].ToString(),
City = adr["City"].ToString(),
Street = adr["Street"].ToString(),
House = Convert. ToInt32(adr["House"].ToString())
});
Context. SaveChanges();
}
Adr. Close();
//импорт данных из таблицы Firm
Cmd. CommandText = "SELECT * FROM Firm";
SqlDataReader frm = cmd. ExecuteReader();
While (frm. Read())
{
Context. AddObject("Relational", new Firm
{
PartitionKey = "Firm",
RowKey = frm["FirmID"].ToString(),
Nameof = frm["NameOf"].ToString(),
Telephone = frm["Telephone"].ToString(),
Email = frm["Email"].ToString(),
Adresskey = Convert. ToInt32(frm["AddressKey"].ToString())
});
Context. SaveChanges();
}
Frm. Close();
//импорт данных из таблицы Employee
Cmd. CommandText = "SELECT * FROM Employee";
SqlDataReader emp = cmd. ExecuteReader();
While (emp. Read())
{
Context. AddObject("Relational", new Employee
{
PartitionKey = "Employee",
RowKey = emp["EmployeeID"].ToString(),
Firstname = emp["FirstName"].ToString(),
Lastname = emp["LastName"].ToString(),
Telephone = emp["Telephone"].ToString(),
Firmkey = Convert. ToInt32(emp["FirmKey"].ToString())
});
Context. SaveChanges();
}
Emp. Close();
Conn. Close();
Кроме того, нам необходимо создать классы - соответствующие сущностям реляционной базы данных, а также класс - контекст.
Класс Address. cs
Class Address: TableServiceEntity
{
Public String country { get; set; }
Public String city { get; set; }
Public String street { get; set; }
Public int house { get; set; }
}
Класс Firm. cs
Class Firm: TableServiceEntity
{
Public String nameof { get; set; }
Public String telephone { get; set; }
Public String email { get; set; }
Public int adresskey { get; set; }
}
Класс Employee. cs
Class Employee: TableServiceEntity
{
Public String firstname { get; set; }
Public String lastname { get; set; }
Public String telephone { get; set;}
Public int firmkey { get; set; }
}
Класс Context. cs
Class Context: TableServiceContext
{
Public IQueryable<Address> ContactData
{
Get
{
Return this. CreateQuery<Address>("Address");
}
}
Public Context(Uri baseAddress, StorageCredentials credentials) :
Base(baseAddress. AbsoluteUri, credentials) { }
Запустите приложение и дождитесь конца его выполнения. В обозревателе серверов раскройте вкладку "Хранилище Windows Azure", затем обновите вкладку "Таблицы" и раскройте ее. Как вы можете видеть, появилась таблица "Relational".
Рис. 16.2.
Если вы решите ее просмотреть, то увидите, что данные из реляционной БД успешно перенесены в таблицу.
Рис. 16.3.
Похожие статьи
-
Windows Azure Table - программирование - Введение в облачные решения Microsoft
Базовые операции таблиц и сущностей Создание; Извлечение с применением фильтров; Обновление (только сущности); Удаление; Транзакции над группами...
-
Структурированное хранилище данных Windows Azure Table - Введение в облачные решения Microsoft
Любое приложение вне зависимости от способа его размещения должно где-то хранить данные. При этом данные могут хранить локально, либо удаленно....
-
Сервисы хранения данных в Windows Azure. VM - роль - Введение в облачные решения Microsoft
VM - роль в Windows Azure предназначена для облегчения процесса миграции существующих Windows Server приложений в "облачную" структуру. VM - роль...
-
По сути, функционал Windows Azure AppFabric - основное отличие "облачной" платформы Windows Azure от смежных решений компаний - конкурентов. AppFabric...
-
Платформа Windows Azure - Введение в облачные решения Microsoft
В начале данной лекций мы бы хотели сделать небольшое отступление и упомянуть стратегию Software+Services компании Microsoft. Конечно, было бы уместным...
-
Группа облачных технологий SQL Service Рассматривая возможности облачных вычислений, сложно не заметить, что одной из наиболее привлекательных и...
-
Инструметарий разработчика Windows Azure - Введение в облачные решения Microsoft
VS 2010 - Windows Azure tools Windows Azure Tools - расширение Visual Studio (VS), позволяющее создавать, тестировать и отлаживать решения для Azure без...
-
Описание и характеристики SQL Azure - Введение в облачные решения Microsoft
Характеристики SQL Azurе В конце июля 2009 года компанией Microsoft был анонсирован SQL Azure. SQL Azure: Первый "облачный" сервис полностью...
-
Технология создания баз данных в программе Microsoft Access
Введение Базы данных играют особую роль в современном мире. Любой из нас многократно начиная с детства, сталкивался с "базами данных". Это - всевозможные...
-
Для разработки базы данных применим инструмент "Management Studio" входящий в состав СУБД "MS SQL Server". Этот инструмент позволяет создавать новые базы...
-
Программный интерфейс для базы данных я разрабатывал в объектно-ориентрованной среде Delphi, с помощью Embarcadero RAD Studio. Конструктор форм Delphi в...
-
Введение в Cloud Computing - Введение в облачные решения Microsoft
Прежде чем начать рассматривать облачные вычисления, необходимо охарактеризовать методику распределенной обработки данных. Распределенная обработка...
-
Необходимо исследовать зависимость влияния различных факторов на параметр, характеризующий производство. В качестве такого параметра было выбрано...
-
Введение - Создание электронного банка данных ФГБУ "Заповедное Прибайкалье"
В исследованиях развития новых информационных технологий необходимо использовать современные методы работы с информациями. Архивы особо охраняемых...
-
Начинать следует с определения структуры таблицы, соответствующей предметной области, т. е. с определения полей, которые надо включить в таблицу, типов...
-
Создание списковых структур данных
Цель работы: Написать программу формирования и печати двусвязного списка Ваших друзей с указанием их телефонов и адресов. Признаком окончания списка...
-
Описание выполнения задания - Создание электронного банка данных ФГБУ "Заповедное Прибайкалье"
В результате оформили 2 лотка с карточками встреч, общим размером 10 гигабайт, с 1958 г. по 2015 г. Выполнено не менее 2300 фотографий, которые переданы...
-
Введение - Проблема организации и хранения данных
В деловой и личной сфере часто приходится работать с данными из разных источников, каждый из которых связан с определенным видом деятельности. Для...
-
В связи с увеличением числа сотрудников, работающих в компании, а также с расширением рабочего проекта, возникла проблема, связанная с версионностью...
-
Создание запроса выбора в режиме конструктора. - Технология создания и управления баз данных
Для создания запроса выбора с помощью Конструктора необходимо открыть окно Конструктора запроса, выполнив действия: Окно БД => объекты Запросы =>...
-
Введение - Технологии больших данных: анализ и выбор решения для реализации проекта
В конце 2000х годов были уже сформированы решения класса Business Intelligence, которые являются альтернативой традиционным методам управления базами...
-
Создание представлений - Банки и базы данных. Системы управления базами данных
Представлением (View) называется виртуальная таблица, отображающая данные, получаемые из реальных таблиц БД, а также из других представлений....
-
Классификация команд языка. - Технология создания и управления баз данных
Команды SQL Команда Назначение Описание данных CREATE TABLE Создает структуру таблицы Манипулирование данными INSERT Добавляет новые записи в таблицу...
-
Описание исходных данных На текущий момент (в силу большой загрузки IT-отдела) не реализован доступ к серверу с ХД, маркетинговые данные выгружаются в...
-
Введение В настоящем дипломном проекте исследуются вопросы, связанные с генерацией искусственных биометрических образов. Рассматриваются различные...
-
В настоящее время биометрия входит в состав наиболее распространенных технологий и средств защиты информации. Отпечатки пальцев являются самой широко...
-
Разработка программного обеспечения предполагает необходимость координации значительного количества весьма разноплановых работ, в которых принимают...
-
Введение - Программные и аналитические решения финансовых и экономических задач
Табличные процессоры - одно из важнейших средств для решения задач широкого назначения. Табличные процессоры в силу своей наполненности включены в пакет...
-
Выполнение функции добавление человека в базу данных По нажатию на кнопку "Добавить" или сочетанием клавиш Ctrl+A произойдет добавление человека в базу...
-
Создание запросов - Разработка системы управления базой данных "Судоходство"
Для дальнейшего формирования отчетов необходимо создать два запроса на выборку это "Кто и где находится" и "Страны где были корабли". Для создания...
-
Введение - Разработка системы управления базой данных "Судоходство"
Любому предприятию, фирме, организации в процессе экономической деятельности приходится постоянно сталкиваться с большими информационными потоками:...
-
Особенность создания электронного пособия
Особенность создания электронного пособия 1-часть 1-секция. Настройка виртуалной машины Fedora14 1. Откройте Свой Проигрыватель VMware Инструкция: 1.1 На...
-
Реализация базы данных - Разработка мобильного приложения расчета и учета оплаты коммунальных услуг
Для создания таблиц базы данных, структура которой представлена на рис. 21 в программе использовались следующие запросы: CREATE TABLE tariffs ( Tariff_id...
-
Этапы проектирования и создания БД - Система управления базами данных
При разработке БД можно выделить следующие этапы работы. I этап. Постановка задачи. На этом этапе формируется задание по созданию БД. В нем подробно...
-
"Обзор наиболее популярных СУБД", Microsoft Access - Базы данных и СУБД
Microsoft Access Microsoft Access - это интерактивная реляционная СУБД (relational database management system - RDBMS) для WINDOWS. Это программа,...
-
Создание базы данных, Телекоммуникационные экскурсии - Мультимедиа в обучении
Некоторые проекты обмена информацией используют не только сбор информации, но и ее организацию в базу данных, которую участники проекта могут...
-
Для написания АИС использовались следующие языки программирования, программные средства и библиотеки: - Язык программирования PHP 5.4; -...
-
Для разработки БД автоматизированной системы "Эффективного использования рабочего времени", я выбрала СУБД Microsoft Access 2003. Основное назначение БД...
-
Обоснование выбора средств разработки проекта Для реализации корпоративной информационной системы "Бюджетное планирование и отчетность" в исследуемой...
-
HTML таблицы. - Создание электронного учебника (по HTML) в редакторе Microsoft Front Page
Таблицы в HTML организуются как набор столбцов и строк. Ячейки таблицы могут содержать любые HTML-элементы, такие, как заголовки, списки, абзацы, фигуры,...
Особенности создания и работы с реляционным хранилищем данных - Введение в облачные решения Microsoft