Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Распределенные базы данных (каф. 17).DOC
Скачиваний:
40
Добавлен:
10.05.2014
Размер:
101.38 Кб
Скачать

Московский государственный инженерно-физический институт (технический университет) распределенные базы данных

Объем

Кафедра-исполнитель

Автор программы Зайцев К.С.

Для групп К7-171, К7-172

Дата утверждения

Аннотация. В курсе изучаются задачи, возникающие при создании современных территориально распределенных информационных систем, и методы их решения в свете обеспечения независимости данных и операций.

Учебная задача. Данный курс является продолжением курса "Базы данных" в части организации баз данных сложных компьютерных систем, узлы которых территориально распределены. Подобные системы являются сегодня наиболее распространенными при решении многих государственных и коммерческих задач обеспечения деятельности хозяйствующих субъектов.

Структура курса: лекции - 24 часа, практические занятия - 8 часов,

Формы контроля: промежуточный - контрольная работа; итоговый - зачет, экзамен.

Содержание курса

Тема 1. Основные понятия

Причины создания. Глобальные транзакции и агенты – схемы обработки. Планирование и диспетчирование выполнения транзакций в распределенной системе.

Тема 2 Фундаментальный принцип создания

Фундаментальный принцип создания распределенных баз данных (РБД) и решаемые при этом задачи обеспечения независимости данных и операций.

Локальная автономия данных узла распределенной системы. Центральный и периферийные узлы. Способы организации данных. Независимость от центрального узла.

Обеспечение непрерывности функционирования РБД. Надежность и доступность системы в заданные временные интервалы. Способы достижения надежности и доступности.

Независимость от расположения данных на узлах. Понятие прозрачности данных. Распределение таблиц БД между узлами сети. Метод Белла и Гримсона.

Тема 3. Независимость от фрагментации и репликации.

Независимость от фрагментации. Горизонтальная и вертикальная фрагментация и их связь с операциями SELECT и PROJECT. Изменение схемы фрагментации в процессе работы.

Независимость от репликации и обработка распределенных запросов. Анализ моделей данных при работе с РБД. Обмен сообщениями при работе с РБД, время обработки сообщений.

Тема 4. Поисковые запросы в рбд

Стратегии реализации поисковых запросов в РБД. Источники и причины сокращения времени передачи данных между узлами. Задержка доступа и интенсивность обмена. Использование операции «Полусоединение» для обработки запросов.

Управление каталогом РБД. Схемы хранения каталога, их преимущества и недостатки. Влияние принципов именования объектов промышленных РБД на ведение каталога. Локальные и системные имена.

Тема 5 Распространение обновления и управление транзакциями

Распространение обновления отношений по узлам распределенной системы. Одновременность обновления и стратегия первичной копии.

Управление распределенными транзакциями. Восстановление транзакций и протокол двухфазной фиксации. Точка фиксации и операции COMMIT и ROLLBACK. Журнал выполнения транзакций для РБД.

Тема 6 Восстановление системы

Восстановление распределенной системы. Контрольные точки в системном журнале и их использование для восстановления системы. Списки повторяемых и отменяемых транзакций. Двухфазная фиксация при восстановлении системы.

Управление параллелизмом выполнения транзакций. Распределенная двухфазная блокировка. Использование меток времени для управления параллелизмом. Операции чтения и записи в РБД.

Тема 7 Независимость от компьютерной платформы и СУБД

Независимость РБД от компьютерной платформы. Особенности гомогенных и гетерогенных распределенных систем. Влияние аппаратного обеспечения и операционных систем на создание РБД.

Независимость от СУБД. Шлюзы и их использование в РБД. Совместимость языков запросов различных СУБД и стандарты SQL. Взаимодействие узлов с реляционной и не реляционной СУБД в распределенной системе.

Тема 8 Системы типа клиент-сервер

Системы типа клиент-сервер и их стандарты. SQL/92, SQL для рабочих групп (SAG) и удаленный доступ к данным (RDA). Стандарт архитектуры реляционной БД (DRBA).

Примеры прототипов и промышленных РБД.

ЛИТЕРАТУРА

Основная

1. Хансен Г., Хансен Д. Базы данных: разработка и управление : -М.: ЗАО «Издательство БИНОМ», 1999. – 704с.

2. Дейт К. Введение в системы баз данных. –Киев-Москва: Диалектика, 1998.

3. Озкарахан Э. Машины баз данных и управление базами данных. –М.: Мир, 1989. – 696с.

Дополнительная

1. Корнеев В.В., Гарев А.Ф., Васютин С.В., Райф В.В. Базы данных. Интеллектуальная обработка информации. -М:, Нолидж, 2000.

2. Энсор Д., Стивенсон Й. ORACLE. Проектирование баз данных. -К: BHV, 2000

Экзаменационных билетов (примеры).

1.

1.1. Локальная автономия данных узла распределенной системы. Центральный и периферийные узлы. Способы организации данных. Независимость от центрального узла.

1.2. Для модели данных, состоящей из отношений:

Поставщики (П#, Пнаимен., Статус, Город) 1.000 кортежей на узле А,

Детали (Д#, Днаимен., Вес, Цвет) 100.000 А,

Проекты (Пр#, ПрНаимен., Город) 1.000 В,

Поставки (П#, Д#, Пр#, Количество) 1.000.000 С

предложить варианты горизонтальной и вертикальной фрагментации.

2.

2.1. Независимость от фрагментации. Горизонтальная и вертикальная фрагментация и их связь с операциями SELECT и PROJECT. Изменение схемы фрагментации в процессе работы.

2.2. Вычислить полусоединение соединяемых отношений

R1=X Y Z R2= Z V W

c b a a d e

d e f a f h

c b d b a b

e a b c d c

h j k c b a

находящихся на узлах 1 и 2 соответственно, если запрос пришел с узла 1. Проиллюстрировать эти действия.

3.

3.1. Стратегии реализации поисковых запросов в РБД. Источники и причины сокращения времени передачи данных между узлами. Задержка доступа и интенсивность обмена. Использование операции «Полусоединение» для обработки запросов.

3.2. Для транзакций, выполняемых в системе предложить и обосновать время (такт) контрольной точки, если авария произошла в момент t10/

Транзакции/Метки

Такты времени

Т1/5

Т2/10

Т3/15

Т4/20

Т5/25

t1

Read (B)

t2

Read (A)

t3

Write (B)

Write (D) Read(C)

Read (D)

t4

t5

Read (D)

t6

t7

Read (A) Write (C)

Write (C)

t8

t9

Write (C) Write (B)

T10

4.

4.1. Стратегии реализации поисковых запросов в РБД. Источники и причины сокращения времени передачи данных между узлами. Задержка доступа и интенсивность обмена. Использование операции «Полусоединение» для обработки запросов.

4.2. Для модели данных, состоящей из отношений:

Поставщики (П#, Пнаимен., Статус, Город) 1.000 кортежей на узле А,

Детали (Д#, Днаимен., Вес, Цвет) 100.000 А,

Проекты (Пр#, ПрНаимен., Город) 1.000 В,

Поставки (П#, Д#, Пр#, Количество) 1.000.000 С

Определить оптимальную стратегию обработки распределенного запроса "Получить сведения о Проектах в Москве, для которых Поставщики из Москвы поставляют красные Детали". Интенсивность обмена - 50.000 bit/c,

задержка доступа - 0.3 с. Дополнительную количественную информацию выбрать самостоятельно.

5.

5.1. Восстановление распределенной системы. Контрольные точки в системном журнале и их использование для восстановления системы. Списки повторяемых и отменяемых транзакций. Двухфазная фиксация при восстановлении системы.

5.2. Вычислить полусоединение соединяемых отношений

R1=X Y Z R2= Z V W

c b a a d e

d e f a f h

c b d b a b

e a b c d c

h j k c b a

находящихся на узлах A и B соответственно, если запрос пришел с узла B. Проиллюстрировать эти действия по шагам.

6.

6.1. Управление параллелизмом выполнения транзакций. Распределенная двухфазная блокировка. Использование меток времени для управления параллелизмом. Операции чтения и записи в РБД.

6.2. Получим ли мы выигрыш в передаче данных, если будем использовать операцию полусоединения для таблиц A и В, расположенных на разных узлах системы

A=X Y Z B= Z V W

c b a a d e

d e f a f h

c b d b a b

e a b c d c

h j k c b a

Вопросы к зачету (примеры)

1 Учитывая, что в распределенной системе имеется шесть узлов емкостью 20 Mb каждый, произвести распределение файлов модели данных “Поставщики-Детали-Проекты-Поставки”, используя если необходимо фрагментацию и репликацию файлов

Файлы (Mb)

Узлы

1(15)

2(10)

3(12)

4(30)

1

130

12

100

12

2

150

56

45

34

3

20

12

65

67

4

12

17

66

120

5

150

6

8

54

6

7

45

1

150

Далее, учитывая распределенность таблиц, на языке реляционной алгебры сформулировать следующие запросы:

1. Найти номера Проектов, для которых Детали поставляют Поставщики из Москвы и Твери.

2. Определить наименования Поставщиков, поставляющих для Проектов с номерами 56 и 71 “Шайбы” и “Болты”.

3. Найти наименования Поставщиков из Калуги, поставляющих для Проекта “Синхрофазатрон”, по крайней мере, те же детали, что и Поставщик П12.

--------------------------------------------------------------------------------------------------------

2 Учитывая, что в распределенной системе имеется пять узлов емкостью 25 Mb каждый, произвести распределение файлов модели данных “Больница-Врач-Палата-Лаборатория-Пациент-Персонал”, используя если необходимо фрагментацию и/или репликацию файлов

Файлы (Mb)

Узлы

1(10)

2(15)

3(10)

4(5)

5(12)

6(10)

1

130

12

100

12

12

110

2

150

56

45

34

56

15

3

20

12

65

67

30

5

4

12

17

66

120

12

15

5

150

6

8

54

17

10

Далее, учитывая распределенность таблиц, на языке реляционной алгебры сформулировать следующие запросы:

1. Найти личные номера обслуживающего Персонала Больницы, работающего в тех же Лабораториях, что и Врачи, лечившие Пациента “Куркина А.В.”.

2. Определить названия Палат, в которых практиковали Врачи, лечившие Пациентов с регистрационными номерами с N5 по N12/

3. Найти специальности Врачей, не работавших в тех Палатах, где проходили лечение Пациенты, с группой крови “В 2”.

--------------------------------------------------------------------------------------------------------

3. Используя протокол меток времени, определить в каком порядке завершатся транзакции Т1, Т2 и т.д. и какие метки будут иметь строки таблиц X,Y и Z в безотказно работающей системе. Изначально известно, что времена чтения (Read) и записи (Write) строк таблиц X,Y и Z равны 0; транзакции Т1, Т2, Т3 и т.д. при первом запуске получили метки из возрастающей последовательности целых чисел, соответственно 1, 2, 3 и т.д. Если транзакция прерывается, то при новом запуске ей присваивается очередная метка из последовательности меток, а времена исполнения ее агентов смещаются на один такт времени.

Транзакции/Метки

Такты времени

Т1/1

Т2/2

Т3/3

Т4/4

Т5/5

t1

Read (Y)

t2

Read (X)

t3

Read (X)

Write (X) Write (Z)

Read (Z)

t4

t5

Read (Z)

t6

t7

Read (Y)

Write (Z)

t8

t9

Write (Y) Write (Z)

T10

Заполнить журнал регистрации транзакций, начиная с момента t1.

----------------------------------------------------------------------------

4. Используя протокол меток времени, определить в каком порядке завершатся транзакции Т1, Т2 и т.д. и какие метки будут иметь строки таблиц A,B,C и D в безотказно работающей системе. Изначально известно, что времена чтения (Read) и записи (Write) строк таблиц равны 0; транзакции Т1, Т2, Т3 и т.д. при первом запуске получили метки из возрастающей последовательности целых чисел {5,10,15,20,25,…}, соответственно 5, 10, 15 и т.д. Если транзакция прерывается, то при новом запуске ей присваивается очередная метка из последовательности меток, а времена исполнения ее агентов смещаются на один такт времени.

Транзакции/Метки

Такты времени

Т1/5

Т2/10

Т3/15

Т4/20

Т5/25

t1

Read (B)

t2

Read (A)

t3

Write (B)

Write (D) Read(C)

Read (D)

t4

t5

Read (D)

t6

t7

Read (A) Write (C)

Write (C)

t8

t9

Write (C) Write (B)

T10

Заполнить журнал регистрации транзакций, начиная с момента t1.

Тексты контрольных работ (примеры)

1.

1.1. Используя протокол меток времени, определить в каком порядке завершатся транзакции Т1, Т2 и т.д. и какие метки будут иметь строки таблиц X,Y и Z в безотказно работающей системе. Изначально известно, что времена чтения (Read) и записи (Write) строк таблиц X,Y и Z равны 0; транзакции Т1, Т2, Т3 и т.д. при первом запуске получили метки из возрастающей последовательности целых чисел, соответственно 1, 2, 3 и т.д. Если транзакция прерывается, то при новом запуске ей присваивается очередная метка из последовательности меток, а времена исполнения ее агентов смещаются на один такт времени.

Транзакции/Метки

Такты времени

Т1/1

Т2/2

Т3/3

Т4/4

Т5/5

t1

Read (Y)

t2

Read (X)

t3

Read (X)

Write (X) Write (Z)

Read (Z)

t4

t5

Read (Z)

t6

t7

Read (Y)

Write (Z)

t8

t9

Write (Y) Write (Z)

T10

Заполнить журнал регистрации транзакций, начиная с момента t1.

1.2. Далее, используя механизм контрольных точек, провести восстановление системы после отказа в момент времени t10 для двух случаев:

  1. контрольная точка – t4;

  2. контрольная точка – t8.

Определить в каком порядке завершатся транзакции и какие метки будут иметь строки таблиц X,Y и Z после проведения процедуры восстановления.

----------------------------------------------------------------------------

2

2.1. Используя протокол меток времени, определить в каком порядке завершатся транзакции Т1, Т2 и т.д. и какие метки будут иметь строки таблиц A,B,C и D в безотказно работающей системе. Изначально известно, что времена чтения (Read) и записи (Write) строк таблиц равны 0; транзакции Т1, Т2, Т3 и т.д. при первом запуске получили метки из возрастающей последовательности целых чисел {5,10,15,20,25,…}, соответственно 5, 10, 15 и т.д. Если транзакция прерывается, то при новом запуске ей присваивается очередная метка из последовательности меток, а времена исполнения ее агентов смещаются на один такт времени.

Транзакции/Метки

Такты времени

Т1/5

Т2/10

Т3/15

Т4/20

Т5/25

t1

Read (B)

t2

Read (A)

t3

Write (B)

Write (D) Read(C)

Read (D)

t4

t5

Read (D)

t6

t7

Read (A) Write (C)

Write (C)

t8

t9

Write (C) Write (B)

T10

Заполнить журнал регистрации транзакций, начиная с момента t1.

2.2.. Далее, используя механизм контрольных точек, провести восстановление системы после отказа в момент времени t10 для двух случаев:

  • контрольная точка – t4;

  • контрольная точка – t8.

Определить в каком порядке завершатся транзакции и какие метки будут иметь строки таблиц после проведения процедуры восстановления.

----------------------------------------------------------------------------------------------------------------------

3

3.1. Используя протокол меток времени, определить в каком порядке завершатся транзакции Т1, Т2 и т.д. и какие метки будут иметь строки таблиц X,Y и Z в безотказно работающей системе. Изначально известно, что времена чтения (Read) и записи (Write) строк таблиц X,Y и Z равны 0; транзакции Т1, Т2, Т3 и т.д. при первом запуске получили метки из возрастающей последовательности целых чисел, соответственно 1, 2, 3 и т.д. Если транзакция прерывается, то при новом запуске ей присваивается очередная метка из последовательности меток, а времена исполнения ее агентов смещаются на один такт времени.

Транзакции/Метки

Такты времени

Т1/1

Т2/2

Т3/3

Т4/4

Т5/5

T6/6

t1

Read (X)

t2

Read (Y)

t3

Read (X)

Write (Z)

Read (Z)

Read (Y)

t4

t5

Read (Z) Write (X)

Read (X) Write (Y)

t6

Read (Y)

t7

t8

Write (Z)

t9

Read(Y)

Write (Z)

T10

Заполнить журнал регистрации транзакций, начиная с момента t1.

2. Далее, используя механизм контрольных точек, провести восстановление системы после отказа в момент времени t10 для двух случаев:

  • контрольная точка – t4;

  • контрольная точка – t7.

Определить в каком порядке завершатся транзакции и какие метки будут иметь строки таблиц X,Y и Z после проведения процедуры восстановления.

----------------------------------------------------------------------------

4

4.1. Используя протокол меток времени, определить в каком порядке завершатся транзакции Т1, Т2 и т.д. и какие метки будут иметь строки таблиц X,Y,Z и т.д. в безотказно работающей системе. Изначально известно, что времена чтения (Read) и записи (Write) строк таблиц равны 0; транзакции Т1, Т2, Т3 и т.д. при первом запуске получили метки из возрастающей последовательности целых чисел, соответственно 2, 4, 6 и т.д. Если транзакция прерывается, то при новом запуске ей присваивается очередная метка из последовательности меток, а времена исполнения ее агентов смещаются на один такт времени.

Транзакции/Метки

Такты времен

Т1/2

Т2/4

Т3/6

Т4/8

Т5/10

T6/12

T7/14

T1

Read(Y)

T2

Read(X)

T3

Read(X)

Write(X) Write(Z)

Read(Z)

T4

Read(Y)Write(V)

Read(Z)

T5

T6

Read(W)

Read(X)

T7

T8

Read(W)

Write(Z)

Read(Z)

T9

Write(V) Write(W)

Write(Y) Write(Z)

T10

T11

Read(V)

Write(V)

T12

T13

Read(W)

Write(V)

Заполнить журнал регистрации транзакций, начиная с момента t1.

2. Далее, используя механизм контрольных точек, провести восстановление системы для двух случаев:

  • после отказа в момент времени t10 для контрольной точки – t5,

  • после отказа в момент времени t12 для контрольной точки – t7.

Определить в каком порядке завершатся транзакции и какие метки будут иметь строки таблиц после проведения процедуры восстановления.

Соседние файлы в предмете Базы данных