Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
!1-25.doc
Скачиваний:
11
Добавлен:
28.10.2018
Размер:
2.62 Mб
Скачать

Распределенные базы данных.

Основной принцип технологии клиент – сервер – это разделение функций интерактивного приложения на 5 групп:

  1. Ввод и чтение данных – Presentation Login(PL).

  2. Реализация алгоритмов решения задач - Bussines Logik(BL).

  3. Обработка данных в приложении - Database Logik(DL).

  4. Управление информационными ресурсами - Database Management System(DMS).

  5. Служебные функции для связи и управления - Management Function(MF).

Задачи презентационной логики: задание форм для ввода, чтение и запись в экранные формы, управление экранной формой, обработка событий средств ввода. Все эти функции называются графическим пользовательским интерфейсом(GUI). Бизнес логика – различные программы, которые работают с БД. Обработка данных в приложении – различные функции СУБД, которые могут выполняться и на клиенте и на сервере. Модель удаленного доступа.

Если бизнес-логика расположена на сервере, то получается толстый сервер и тонкий клиент. Если бизнес-логика расположена на клиенте, то получается толстый клиент и тонкий сервер. Преимущества модели удаленного доступа: Разгрузка сервера, уменьшение нагрузки на сеть,  стандартный интерфейс на основе SQL. Недостатки модели удаленного доступа: большой трафик при интенсивной работе приложений., дублирование бизнес – логики на каждом приложении, сложный клиент. Модель сервера БД предполагает, что на клиенте находится презентационная логика и функции связи с сервером. На сервере, кроме БД, реализуются представления, хранимые процедуры и триггеры. В данном случае сервер выполняет все функции СУБД. Недостаток такой организации – перегрузка сервера бизнес – логикой. 2-х уровневая архитектура – модель, при которой в системе присутствует один сервер и много клиентов. 3-х уровневая архитектура имеет следующий вид:Функции клиента: представляет графический интерфейс, обращение к локальной БД и доступ в сеть. Функции сервера: общие процедуры для нескольких клиентов, общие правила бизнес – логики., локальный каталог данных, распределенные транзакции. Функции сервера БД: создание и ведение БД, поддержка целостности БД, функции хранилища БД, создание резервных копий, защита данных. При такой организации существует один сервер БД и несколько серверов приложений, к которым подключаются компьютеры клиентов: 3-х - звенная арх-ра реализуется с помощью технологий распр-ных приложений DCOM, MTS, CORBA, J2EE и т.д.

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

//подключение внешних модулей

#include "stdio.h"

#include "string.h"

#include "iostream.h"

#include "Windows.h"

#include "io.h"

#include "fcntl.h"

#include <sys/stat.h>

struct list{//ст-ра элемента дерева

char el;

int count;

list *nextl,*nextr; };

char* scob_zap(list *node)

{//функция воз-я скоб-ю запись дерева

char * asd = new char [1024];

ZeroMemory(asd,1024);//очищаем память

asd[0] = node->el;//записывем то что нах-ся в инф поле

strcat(asd,"(");//присоединяем (

if(node->nextl!=NULL)

strcat(asd,scob_zap(node->nextl));//рек-но ищем ск. зап. Для левого наследника

strcat(asd,",");

if(node->nextr!=NULL)

strcat(asd,scob_zap(node->nextr)); //рек-но ищем ск. зап. Для правого наследника

strcat(asd,")");

return asd;//возвращаем получ значение

}

void insert_el(char el, list ** node)

{//функция вставки элемента в дерево

if(*node == NULL)

{//создаем новый элемент

*node = new list;

(*node)->el = el;

(*node)->nextl = NULL;

(*node)->nextr = NULL;

(*node)->count = 1;

}else//изменяем уже имеющийся если оны равны

if(el == (*node)->el){ (*node)->count++; }else{//если не равны – ищем дальше

if(el>(*node)->el) insert_el(el,&(* node)->nextr); else

insert_el(el,&(* node)->nextl); }}

int fh;

void main(){ //the main function

fh = -1;//file handle

list *fst,*tek;

fst = tek = NULL;//создаём файл

fh = _open( "tmp1.file", _O_WRONLY|_O_CREAT );

printf("vvedite simvol i = ");

char i;

scanf("%c",&i);

do{

int j = _write(fh,&i,sizeof(char));//записываем элементы в него

if(j<=0) printf("error write");

printf("Vvedite simvol(konechnii element - !) i = ");

cin>>i;}while(i!='!');

_close(fh);//close file

fh = _open( "tmp1.file",_O_RDONLY );

bool is_first = true;//

while(!_eof(fh))

{ _read(fh,&i,sizeof(char)); insert_el(i,&fst); }// end of tree construction

printf("%s",scob_zap(fst));//output string }

12.5

A1

A2

A3

A4

1

2

A

B

8

4

B

A

2

1

C

D

1

2

K

M

2

7

N

P

3

4

A

B

3

4

C

D

A3

A4

A

B

C

D

a]πA3,A4A4=AvA2<3{R}}

A1

A2

A3

A4

1

2

A

B

2

1

C

D

1

2

K

M

3

4

A

B

σA4=AvA2<3{R}=

A3

A4

A

B

C

D

K

M


πA3,A4A4=AvA2<3{R}}=

SQL

A1

A2

1

2

8

4

2

7

3

4

2

1

Б] R÷S

1.Q=πA1,A2{R}=

A1

A2

A3

A4

8

4

A

B

2

7

A

B

8

4

C

D

2

7

C

D

2

1

A

B


2.P1=QxS= 3.P2=P1-Q=

A1

A2

A3

A4

1

2

A

B

8

4

A

B

2

7

A

B

3

4

A

B

2

1

A

B

1

2

C

D

8

4

C

D

2

7

C

D

3

4

C

D

2

1

C

D

A1

A2

8

4

2

7

2

1


4.P3= πA1,A2{P2}=

A1

A2

1

2

3

4

5. R÷S=Q-P3=

В]πA4,A3A3=A ИA1<5 {R}}x S

A1

A2

A3

A4

1

2

A

B

3

4

A

B


σA3=A ИA1<5 {R}=

A3

A4

A

B


πA4,A3A3=A ИA1<5 {R}}=

πA4,A3A3=A ИA1<5 {R}}x S