Опубликован: 30.05.2011 | Доступ: свободный | Студентов: 2366 / 213 | Оценка: 4.12 / 4.41 | Длительность: 12:00:00
Самостоятельная работа 4:

Хранилище данных с реляционной структурой

< Лекция 12 || Самостоятельная работа 4: 12 || Самостоятельная работа 5 >
Аннотация: Особенности создания и работы с реляционным хранилищем данных.

Как мы уже говорили в лекциях, хранилище 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', 'firm1@testmail.com', '1')

insert into Firm
values ('Firm2', 'xxx-xx-xx', 'firm2@testmail.com', '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 - строки конкретной сущности исходной БД и определяющим экземпляр сущности

Значения остальных атрибутов будут перенесены без изменений.

< Лекция 12 || Самостоятельная работа 4: 12 || Самостоятельная работа 5 >
Роза Мальцева
Роза Мальцева
Игнат Гринько
Игнат Гринько

Примерно месяц назад получил на сайте код Дримспарк, сегодня вводил его на сайте Дримспарк, пишет: Недействительный код проверки. Проверьте правильность введенного кода. Код вводил методом: скопировать-вставить.