ВУЗ: Томский государственный университет систем управления и радиоэлектроники
Категория: Методичка
Дисциплина: Базы данных
Добавлен: 28.11.2018
Просмотров: 2657
Скачиваний: 8
26
а) указанный порядок соответствует обходу дерева “снизу вверх”, т.е. не
является наилучшим с точки зрения затрат на обработку на местах, т.е. вы-
полнения операций в узлах и передачи данных.
Рассматриваемый запрос можно оптимизировать с учетом двух отноше-
ний эквивалентности:
-
каскадность унарных операций;
-
дистрибутивность унарных операций.
Унарные операции – это операции селекции и проекции, уменьшающие
размеры отношения по горизонтали и вертикали соответственно).
Каскадность унарных операций показывает, что заданная унарная
операция может быть разбита на части, выполняемые последовательно.
Например, R[A
1
θc
1
AND A
2
θc
2
]≡(R[A
1
θc
1
]) [A
2
θc
2
], где S,R – отношения;
A – атрибуты, c – операнды, θ – оператор сравнения.
Дистрибутивность унарных операций относительно бинарных позволя-
ет распространить их на операнды бинарных операций.
Например, (R*S)[Aθc]=(R[Aθc]*S[Aθc]).
То есть ОПТИМИЗАЦИЯ заключается возможно более ранним приме-
нением операций редукции, что приводит к оптимальному выполнению за-
проса.
Это соответствует перемещению унарных операций по направлению к
листьям дерева.
Эквивалентности позволяют:
1)
распределить селекцию относительно естественного соединения, по-
следовательно выполнить проекции на нужные компоненты, а затем распре-
делить их также как для операции селекции;
2)
проекция теперь начинается снизу:
[ИМЯ]
* (т.е. ОТД#=ОТД#)
[ОТД#]
[ОТД# ]
[ПРОЕКТ#=5 ]
* ОТД
СЛУЖАЩИЕ
27
Одновременная
обработка
и
обновление
1)
Одновременная работа в СУБД.
а) в распределенных базах данных может одновременно выполняться
несколько транзакций (запросов); при этом могут использоваться одни и те
же данные, возможно продублированные в разных узлах;
б) при чтении для получения нужной информации достаточно одной ко-
пии, если система обеспечивает непротиворечивость всех копий;
в) при обновлениях, для сохранения непротиворечивости копий нужно
их своевременно модифицировать.
Для этого обновления нужно производить в соответствии с последова-
тельными протоколами. Что это такое? Введем основные понятия, характе-
ризующие одновременную работу СУБД.
Логическая транзакция – относится к прикладной программе и пред-
ставляет совокупность системных транзакций.
Расписание – это порядок выполнения транзакций во времени.
Примеры расписаний
1) 2) 3)
4)
T1:R-A T1:R-A T1:W-A
T1:W-A
T1:W-A T2:R-A T2:W-A
T2:R-A
T2:R-A T1:W-A T1:ОТМЕНИТЬ T1:ПРЕРВАТЬ
T2:W-A T2:W-A
Где R-A – считывание поля; W-A – запись (модификация входных пере-
менных); Т1, Т2 … - транзакции.
1)
Рассогласования не возникает, т.к. транзакции Т1 и Т2 выполняются
последовательно (одна за другой).
2)
Модификация транзакции Т1 затирается транзакцией Т2, следова-
тельно модификация транзакции Т1 – теряется.
3)
Происходит потеря модификации транзакции Т2, вызванная тем, что
после записи Т2 следует отмена транзакции Т1.
4)
Называется неправильное считывание, так как выбранное транзак-
цией Т2 значение впоследствии удаляется из базы данных.
Для ограничения порядка выполнения транзакций необходимы протоко-
лы, сложность которых зависит от того, на каком уровне требуется поддер-
живать целостность при работе с базой данных.
Согласованные состояния базы данных обеспечивают:
-
последовательность;
-
приводимые к последовательным расписания.
Расписание называется последовательным, если все действия транзак-
ции выполняются друг за другом.
модификация
28
Расписание называется приводимым к последовательному, если ре-
зультат применения этого расписания к базе данных эквивалентен результа-
ту последовательного расписания.
Если учитывать одновременное выполнение транзакций над многочис-
ленными копиями, последовательность обновлений требует развитых средств
синхронизации.
Существуют различные решения (варианты) при управлении обновле-
ниями в распределенной базе данных.
Например,
1)
использование схемы с основным узлом (или основной копией):
а) для каждого отношения выбирается основной узел, в котором произво-
дится обновление информации;
б) после успешного завершения обновления в этом узле начинается обнов-
ление вторичных копий для полного завершения данной операции обновле-
ния.
В этом случае: основная проблема при выполнении транзакции – обеспе-
чить соответствие данных, уже обновленных и еще не обновленных. Кроме
того, кроме первичного (центрального) узла необходимо выбрать дополни-
тельные узлы на случай сбоев (свойство надежности).
2)
При запросах, требующих только считывания из базы данных, удоб-
ным средством обеспечения одновременного обслуживания являются «мо-
ментальные съемки» основных отношений. Их можно продублировать там,
где это необходимо. Такие съемки делаются (т.е. их данные засылаются в
разные узлы) тогда, когда удобнее всего производить обновление базы дан-
ных (т.е. в менее напряженные часы).
До следующего обновления эти снимки обслуживают пользователей (хо-
тя данные в них старые), и они не подвержены влиянию обновления основ-
ных отношений.
6.
ПРИНЦИПЫ
РАБОТЫ
СИСТЕМЫ
КЛИЕНТ
/
СЕРВЕР
.
МОДЕЛИ
ТЕХНОЛОГИИ
КЛИЕНТ
/
СЕРВЕР
В результате изучения материала данной главы Вы:
а) сможете определить схему базы данных на языке СУБД сервера;
б) сможете пользоваться языком манипуляции данными СУБД сервера
для написания программ, используя возможности реляционного подхода;
в) познакомитесь со средствами создания приложений клиентских сис-
тем.
Платформа клиент/сервер – это компьютерная сеть; один или несколь-
ко компьютеров сети обслуживают остальные и потому называются серве-
рами. ( Serve – прислуживать, служить.)
Остальные компьютерные сети – клиенты этих серверов.
29
Каждый тип машины приспособлен для выполнения своих специфиче-
ских функций в сетевой системе:
Сервер – приспособлен к обслуживанию большого количества клиентов.
Клиентские системы – приспособлены для ввода и представления данных:
они включают в себя графические пользовательские интерфейсы (ГПИ).
Графический пользовательский интерфейс (ГПИ) - окна и управ-
ляющие структуры, представляющие конечному пользователю графические
средства доступа к компьютерной системе.
В модели клиент/сервер компьютеры в сети не являются равноправными
-
владеют и распоряжаются информационно-вычислительными ресур-
сами (процессор, файловая система, почтовая служба, базы данных);
-
другие имеют возможность обращаться к этим службам.
Компьютер, управляющий теми или иным ресурсом, называют сер-
вером этого ресурса (конкретный сервер определяется видом ресурса, кото-
рым он владеет). В сети один компьютер может выполнять роль как клиента,
так и сервера.
Этот же принцип распространяется и на взаимодействие программ:
-
если одна из них выполняет некоторые функции, предоставляя другим
соответствующий набор услуг – программа выступает в качестве сервера.
Например,
-
ядро реляционной SQL – ориентированной СУБД называется серве-
ром баз данных;
-
программа, обращающаяся к серверу за услугами по обработке дан-
ных - SQL – клиент.
Принципы технологии клиент/сервер заключается в разделении функ-
ций стандартного интерактивного приложения (4 группы).
1.
Объединяет функции ввода и отображения данных.
2.
Объединяет прикладные (конкретная предметная область) функции
(открытие счета, перевод денег и т.д.).
3.
Обеспечивает распределение логических компонент между компью-
терами в сети.
4.
Реализация механизмов связи компонентов между собой
По способу реализации этих функций существуют модели технологии
клиент/сервер:
1 – модель файлового сервера (File Server –FS);
2 – модель доступа к удаленным данным (Remote Data Acces – RDA);
3 – модель сервера баз данных (DataBase Server – DBS);
4 – модель сервера приложений (Application Server – AS);
30
6.1.
Модель
файл
-
сервер
(FS)
1 – FS - модель
*FS – модель является базовой для локальных сетей ПК.
а) Один из компонентов (наиболее мощный) в сети считается файловым
сервером и представляет услуги по обработке файлов другим компьютерам.
б) Файловый сервер работает под управлением сетевой операционной
системы (например, Novell NetWare, Windows и др.).
в) На других компьютерах в сети функционирует приложение, в кодах
которого совмещены компонент представления и прикладной компонент
(рис. 6.1).
г) протокол обмена представляет собой набор низкоуровневых вызовов,
обеспечивающих приложению доступ к файловой системе на файл-сервере.
Применительно к базам данных. FS – модель позволила расширить
возможности персональных СУБД.
В таком случае на нескольких ПК выполняется как прикладная програм-
ма, так и копия СУБД, а базы данных хранятся в разделяемых файлах, кото-
рые находятся на файловом сервере. Когда прикладная программа обращает-
ся к базе данных, СУБД направляем запрос на файловый сервер. В этом за-
просе указаны файлы, где находятся запрашиваемые данные.
В ответ на запрос файловый сервер представляет требуемый блок дан-
ных, над которыми СУБД выполняет действия.
Технологические недостатки FS-модели:
1)
высокий сетевой трафик (передача множества файлов);
2)
узкий спектр операций манипуляции с данными (данные – это фай-
лы);
3)
отсутствие эффективных средств безопасности доступа к данным (за-
щита только на уровне файловой системы).
Компонент
Прикладной
Представления компонент
Компонент
доступа к
ресурсам
КЛИЕНТ
ФАЙЛЫ
СЕРВЕР
Рис. 6.1