Файл: Базы данных САПР_УП.pdf

Добавлен: 28.11.2018

Просмотров: 2657

Скачиваний: 8

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
background image

 

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 ] 

*    ОТД 

СЛУЖАЩИЕ 


background image

 

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 значение  впоследствии удаляется  из базы данных. 

Для ограничения порядка выполнения транзакций необходимы протоко-

лы, сложность которых зависит от того, на каком уровне требуется  поддер-
живать целостность при работе с базой данных. 

Согласованные состояния базы данных обеспечивают: 
-

 

последовательность; 

-

 

приводимые к последовательным расписания. 

Расписание  называется  последовательным,  если  все  действия  транзак-

ции выполняются друг за другом. 

модификация 


background image

 

28

Расписание  называется  приводимым  к  последовательному,  если  ре-

зультат применения этого расписания  к базе данных эквивалентен  результа-
ту последовательного расписания. 

Если  учитывать  одновременное  выполнение  транзакций  над  многочис-

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

Существуют  различные  решения  (варианты)  при  управлении  обновле-

ниями  в распределенной базе данных. 

Например, 
1)

 

 использование схемы с основным узлом (или основной копией): 

а) для каждого отношения выбирается основной узел, в котором произво-

дится обновление информации;  

б) после успешного завершения обновления в этом узле начинается обнов-

ление  вторичных  копий  для  полного  завершения  данной  операции  обновле-
ния. 

В этом случае: основная проблема при выполнении транзакции – обеспе-

чить  соответствие  данных,  уже  обновленных  и  еще  не  обновленных.  Кроме 
того,  кроме  первичного  (центрального)  узла  необходимо  выбрать  дополни-
тельные узлы на случай сбоев (свойство надежности). 

2)

 

 При  запросах,  требующих  только  считывания  из  базы  данных,  удоб-

ным  средством  обеспечения  одновременного  обслуживания  являются  «мо-
ментальные съемки
» основных отношений. Их можно продублировать там, 
где  это  необходимо.  Такие    съемки  делаются  (т.е.  их  данные  засылаются  в 
разные  узлы)  тогда,  когда  удобнее  всего  производить  обновление  базы  дан-
ных (т.е. в менее напряженные часы).  

До следующего обновления эти снимки обслуживают пользователей (хо-

тя  данные  в  них  старые),  и они  не подвержены  влиянию обновления  основ-
ных отношений.  

 

6. 

ПРИНЦИПЫ

 

РАБОТЫ

 

СИСТЕМЫ

 

КЛИЕНТ

/

СЕРВЕР

МОДЕЛИ

 

ТЕХНОЛОГИИ

 

КЛИЕНТ

/

СЕРВЕР

 

 

В результате изучения материала данной главы Вы: 
а) сможете определить схему базы данных на языке СУБД сервера; 
б)  сможете  пользоваться  языком  манипуляции  данными  СУБД  сервера 

для написания программ, используя возможности реляционного подхода; 

в)  познакомитесь  со  средствами  создания  приложений  клиентских  сис-

тем. 

Платформа клиент/сервер – это компьютерная сеть; один или несколь-

ко  компьютеров  сети  обслуживают  остальные  и  потому    называются  серве-
рами.
 ( Serve – прислуживать, служить.) 

Остальные компьютерные сети – клиенты этих серверов. 


background image

 

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); 
 
 
 
 
 


background image

 

30

 

6.1. 

Модель

 

файл

-

сервер

 (FS) 

 

     1 – FS - модель 
 
 
 
 
 
 
 
 
 
 
*FS – модель является базовой для локальных сетей ПК. 
а) Один из компонентов (наиболее мощный) в сети считается файловым 

сервером и представляет услуги по обработке файлов другим компьютерам. 

б)  Файловый  сервер  работает  под  управлением  сетевой  операционной 

системы  (например, Novell NetWare, Windows и др.). 

в)  На  других  компьютерах  в  сети  функционирует  приложение,  в  кодах 

которого  совмещены  компонент  представления  и  прикладной  компонент 
(рис. 6.1). 

г) протокол обмена представляет собой набор низкоуровневых вызовов, 

обеспечивающих приложению доступ к файловой системе  на файл-сервере. 

Применительно  к  базам  данных. FS – модель  позволила  расширить 

возможности персональных СУБД. 

В таком случае на нескольких ПК выполняется как прикладная програм-

ма, так и копия СУБД, а базы данных хранятся в разделяемых файлах, кото-
рые находятся на файловом сервере. Когда прикладная программа обращает-
ся  к базе  данных,  СУБД направляем  запрос на файловый сервер.  В  этом  за-
просе указаны файлы, где находятся запрашиваемые данные. 

В  ответ  на  запрос  файловый  сервер  представляет  требуемый  блок  дан-

ных, над которыми СУБД выполняет действия. 

 
Технологические недостатки FS-модели: 
1)

 

 высокий сетевой трафик (передача множества файлов); 

2)

 

 узкий  спектр  операций  манипуляции  с  данными  (данные – это  фай-

лы); 

3)

 

 отсутствие эффективных средств безопасности доступа к данным (за-

щита только на уровне файловой системы). 
 
 
 

Компонент  

      Прикладной 

Представления            компонент 

Компонент 
доступа к 
ресурсам 

КЛИЕНТ 

ФАЙЛЫ 

СЕРВЕР 

Рис. 6.1