logo search
ГОСЫ / ГОСБилеты

2. Архитектура клиент-сервер. Распределенные базы данных.

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

Модель "сервер базы данных" - архитектура вычислительной сети типа "клиент-сервер", в которой пользовательский интерфейс и логика приложений сосредоточены на машине-клиенте, а информационные функции (функции СУБД) - на сервере. Обычно клиентский процесс посылает запрос серверу на языке SQL.

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

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

(Чтоб понятнее был принцип: Распределенная система - система из нескольких взаимосвязанных компьютеров, способная решать единую прикладную задачу.

Назначение и принцип работы распределенной базы данных

Когда у предприятия есть удаленные филиалы, возникает необходимость в синхронизации данных между ними и главным офисом. Естественно, что в основной базе предприятия должны отображаться любые изменения касательно филиалов. Такую синхронизацию можно осуществлять при помощи механизмов распределенной базы данных.

В главном офисе создаются начальные образы базы (для каждого филиала - свой образ) и передаются в филиалы, где их загружают. При этом задаются настройки обмена, по которым будет происходить синхронизация между каждой из периферийных (подчиненных) баз и главной базой.

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

Таким образом, можно подытожить, что в распределенной базе формируются древообразные связи. Например, на предприятии главному офису подчинено два филиала, причем у первого филиала есть два удаленных подразделения, а у второго - три подразделения. Получается, что основной базе подчинено две периферийных базы. Первой периферийной базе, в свою очередь, подчинено еще две базы, а второй периферийной - три. То есть можно представить связи в такой распределенной базе следующим образом:

Схема распределенной базы для нашего примера

Узел 1 является корневым для всей распределенной базы и главным узлом для подчиненных ему второму и третьему. Второй узел является главным узлом для подчиненных ему четвертому и пятому. Третий узел будет главным для подчиненных ему шестому, седьмому и восьмому.

• Любой узел распределенной базы данных (УРБД) "видит" только узлы, напрямую связанные с ним. С такими узлами он и осуществляет обмен данными.

• Внесение изменений в данные информационной базы возможно в любом узле УРБД, причем изменения данных передаются между любыми связанными узлами. На схеме направления, по которым передаются изменения данных, обозначены зелеными стрелочками (по ним из любого узла УРБД за определенное количество шагов можно попасть в любой другой узел, отсюда следует, что при внесении изменений в данные любого узла эти изменения постепенно перенесутся во все остальные).

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

3. Занести вBLнаименьшее число из отрезка от 2 до К на которое не делится числоN, при условии что 2K<N.

program Project1;

{$APPTYPE CONSOLE}

uses

SysUtils,

Windows;

//Program Zadanie_1;

//Uses Crt;

Var K:Byte;

Function Otrezok (X:Integer):Integer;

Begin

asm

{находим значение N и сохраняем его в AX}

MOV CX,2

MOV AX,5

MUL CX

{сохраняем в BX значение N}

MOV BX,AX

{задаем начальное значение делителя}

MOV CX,1

@1:

INC CX

MOV AX,BX

{проверка, не вышли ли за границы отрезка 2..K}

CMP CX,x

JG @2

{делим регистр AX на CX}

DIV CX

{проверяем остаток от DX}

CMP DX,0

{если поделено нацело, отправляемся по метке 1}

JZ @1

{нацело не поделилось, нашли значение на отрезке = CX и выход из процедуры}

// MOV @Result,CX

JMP @3

@2:

MOV CX,0

// MOV @Result,CX

@3:

end;

End;

Begin

//ClrScr;

Write('Vvedite K == ');

Readln(K);

Writeln('RESULT => ',Otrezok(K));

Readln;

end.

//begin

{ TODO -oUser -cConsole Main : Insert code here }

//end.