SlideShare ist ein Scribd-Unternehmen logo
1 von 25
Управление данными
Часть 6.
Распределенная обработка
данных
(©) Владислав Лавров, vlavrov.com
2
Система распределенной обработки
данных
Режим распределенного доступа к
централизованной БД:
- параллельный доступ к одной базе
данных нескольких пользователей;
- база данных физически расположена
на одной машине.
Система распределенных баз данных
Режим параллельного доступа к
распределенной БД:
- база данных физически распределена
по нескольким компьютерам,
расположенным в сети;
- к базе данных возможен параллельный
доступ нескольких пользователей.
Централизованная
база данных
Распределенная
база данных
(©) Владислав Лавров, vlavrov.com
3
Режимы работы с базами данных
По количеству
одновременно
работающих
пользователей
По способу
доступа
По физическому
распределению
Классификационный
признак, отличия:
Современный
режим работы
(©) Владислав Лавров, vlavrov.com
4
6.1. Модели «клиент-сервер» в технологии баз данных
Основные программные процессы:
• «Клиент»
сторона, запрашивающая
функции/обслуживание
• «Сервер»
сторона, предоставляющая
функции/обслуживание
Запрос
Клиент Сервер
Результат
Клиент Сервер
Особенность
На уровне программного обеспечения разделение системы
на клиента и сервер является логическим, а именно
процессы клиента и сервера могут физически размещаться
как на одной, так и на разных машинах.
(©) Владислав Лавров, vlavrov.com
5
Основной принцип технологии «клиент–сервер»
применительно к технологии баз данных –
разделение функций приложения на группы
Основные функции стандартного интерактивного приложения :
1) функции ввода и отображения данных (Интерфейс пользователя,
Presentation Logic, Логика представления);
2) прикладные функции, определяющие основные алгоритмы решения
задач приложения (Business Logic, Бизнес-правила);
3) функции обработки данных внутри приложения (Database Logic);
4) функции управления информационными ресурсами (Database
Manager System);
5) служебные функции, играющие роль связок между функциями
первых четырех групп.
(©) Владислав Лавров, vlavrov.com
6
Структура типового интерактивного приложения,
работающего с базой данных
СУБД
Клиент
Presentation
Logic
Business
Logic
Database
Logic
Служебные
функции
Сервер
(©) Владислав Лавров, vlavrov.com
7
Презентационная логика
(Presentation Logic)
Это часть кода приложения, которая определяет
что пользователь видит на своем экране, когда
работает приложение.
Основные задачи:
• формирование экранных изображений;
• чтение и запись в экранные формы информации;
• управление экраном;
• обработка движений мыши и нажатие клавиш
клавиатуры.
(©) Владислав Лавров, vlavrov.com
8
Бизнес-логика, или логика собственно приложений
(Business Processing Logic)
Это часть кода приложения, которая определяет
алгоритмы решения конкретных задач приложения.
В зависимости от конкретных функциональных требований
и сложности задач может оказаться полезным
подразделить эту часть на несколько компонентов
(бизнес-правила, правила целостности и др.).
Реализация
Конкретная реализация каждого компонента может быть
представлена в виде набора процедур (библиотек),
класса или классов объектов, отдельных программ.
Как правило, код компонентов пишут с использованием
различных языков программирования, таких как С, С++,
C#, Pascal, Visual Basic и др.
(©) Владислав Лавров, vlavrov.com
9
Логика обработки данных, или логика доступа к данным
(Database Logic)
Это часть кода приложения, которая связана с
обработкой данных внутри приложения.
Назначение
Осуществляет перевод специфических для
конкретного приложения запросов на язык SQL
(интерфейс к СУБД), получение результатов и
перевод этих результатов обратно в
специфические для конкретного приложения
структуры данных.
(©) Владислав Лавров, vlavrov.com
10
Процессор управления данными
(Database Manager System Processing)
Это собственно СУБД, которая
обеспечивает хранение и управление
базами данных.
В идеале функции СУБД должны быть
скрыты от бизнес-логики приложения,
однако для рассмотрения архитектуры
приложения их выделяют в отдельную
часть приложения.
(©) Владислав Лавров, vlavrov.com
11
Варианты архитектуры приложения
Централизованная
Все части приложения располагаются в единой среде
и комбинируются внутри одной исполняемой программы.
Децентрализованная
Все задачи могут быть по-разному распределены между серверным
и клиентским процессами.
Различие архитектурных реализаций определяется тем:
• как логические компоненты базы данных распределены в сети;
• какие механизмы используются для связи компонентов между собой.
Варианты (модели) построения архитектуры приложения:
• двухуровневые
модель файлового сервера (модель удалённого управления данными);
модель удалённого доступа к данным;
модель сервера баз данных;
• трёхуровневая
модель сервера приложений.
(©) Владислав Лавров, vlavrov.com
12
Модель файлового сервера (File Server, FS)
(модель удаленного управления данными)
Преимущества
• разделение монопольного приложения
на два взаимодействующих процесса;
• сервер (серверный процесс) может
обслуживать множество клиентов
Недостатки
• высокий сетевой трафик, который связан
с передачей по сети множества блоков и
файлов, необходимых приложению;
• узкий спектр операций манипулирования
с данными, который определяется только
файловыми командами. Драйвер «умеет»
обрабатывать только простые запросы;
• отсутствуют механизмы оптимизаций
запросов и кэширования;
• отсутствие адекватных средств
безопасности доступа к данным (защита
только на уровне файловой системы).
Коммерческие реализации:
•dBase
•FoxPro
•Clipper
6.2. Двухуровневые модели
(©) Владислав Лавров, vlavrov.com
13
Модель удаленного доступа к данным (Remote Data Access, RDA)
Преимущества
• резко уменьшается загрузка сети, так как по ней от
клиентов к серверу передаются не запросы на ввод-вывод
в файловой терминологии, а запросы на SQL, и их объем
существенно меньше. В ответ на запросы клиент получает
только данные, релевантные (соответствующие смыслу)
запросу, а не блоки файлов, как в FS-модели,
• более гибкое распределение доступа к данным (на уровне
отдельных записей);
• унификация (стандартизация) интерфейса «клиент-
сервер», стандартом при общении приложения-клиента и
сервера становится язык SQL.
Недостатки
• запросы на языке SQL при интенсивной
работе клиентских приложений могут
существенно загрузить сеть;
• сложность администрирования при
изменении бизнес-правил, вызванная
излишним дублированием кода
приложений;
• сервер играет пассивную роль, поэтому
функции управления информационными
ресурсами должен выполнять клиент.
Коммерческие реализации:
Microsoft Access
Двухуровневые модели
(©) Владислав Лавров, vlavrov.com
14
Модель сервера баз данных (Server DataBase)
Требования к серверу
• База данных должна в каждый момент отражать текущее состояние
предметной области. Непротиворечивость хранимых в базе данных
• База данных должна отражать некоторые общие правила предметной
области (бизнес-правила)
• Необходим постоянный контроль за состоянием базы данных,
отслеживание всех изменений и адекватная реакция на них
• Необходимо, чтобы возникновение некоторой ситуации в базе данных
четко и оперативно влияло на ход выполнения прикладной задачи.
• Необходимо контролировать в базе данных семантическую составляющую
бизнес-правил.
Механизмы на сервере для реализации требований
• Хранимые процедуры (Stored Procedure)
• Триггеры (Trigger)
Двухуровневые модели
(©) Владислав Лавров, vlavrov.com
Модель сервера баз данных (Server DataBase)
Преимущества
• снижение сетевого трафика;
• реализация общей для клиентов бизнес-логики
средствами сервера, что существенно уменьшает
дублирование алгоритмов обработки данных в разных
клиентских приложениях;
• упрощение администрирования сервера БД (наличие
встроенных механизмов решения административных
задач по обслуживанию сервера, например репликации
данных между серверами, автоматического запуска
задач, оповещения и др.).
Недостатки
• очень большая загрузка сервера;
• в настоящее время в коммерческих СУБД
нет удобного инструмента для написания
и отладки хранимых процедур и
триггеров;
• отсутствие стандартов на хранимые
процедуры.
Коммерческие реализации:
• Oracle
• Microsoft SQL Server
Двухуровневые модели
(©) Владислав Лавров, vlavrov.com
16
Модель сервера приложений (Application Server, AS)
Преимущества
• преодоление фундаментальных ограничений двухуровневой
архитектуры по количеству одновременно подключенных клиентов;
• модель обладает большей гибкостью, чем двухуровневые модели.
Наиболее заметны преимущества в случаях выполнения сложных
аналитические расчетов над базой данных (OLAP, On-line analytical
processing);
• повышение переносимости системы и ее масштабируемости,
поскольку большая часть бизнес-логики клиента изолирована от
возможностей встроенного SQL, реализованного в конкретной СУБД,
и может быть выполнена на стандартных языках программирования.
Недостаток
• сложность программирования
системы баз данных
6.3. Трехуровневая модель
(©) Владислав Лавров, vlavrov.com
17
Архитектуры построения серверов баз данных
• Модель «один-к-одному»
• Модель системы с выделенным сервером
• Модель виртуального сервера
• Модель многопотоковой архитектуры
с несколькими серверами
6.4. Модели серверов баз данных
(©) Владислав Лавров, vlavrov.com
18
Модель «один-к-одному»
Особенности
• сервер обслуживает запросы только одного пользователя (клиента),
• для обслуживания нескольких клиентов нужно было запустить эквивалентное число
серверов (серверных процессов в операционной системе)
• каждый серверный процесс в этой модели запускается как независимый, поэтому
если один клиент сформировал запрос, который был только что выполнен другим
серверным процессом для другого клиента, то запрос тем не менее выполнялся
повторно.
Модели серверов баз данных
(©) Владислав Лавров, vlavrov.com
19
Система в выделенным сервером
(многопотоковая односерверная архитектура,
multi-threaded)
Особенности
• единственный серверный процесс обладает монополией на управление
данными и взаимодействует одновременно со многими клиентами;
• логически каждый клиент связан с сервером отдельной нитью («thread»),
или потоком, по которому пересылаются запросы.
Модели серверов баз данных
(©) Владислав Лавров, vlavrov.com
20
Модель виртуального сервера (virtual server)
Особенности
• клиенты подключаются не к реальному серверу, а к промежуточному звену,
называемому диспетчером, который выполняет только функции диспетчеризации
запросов к актуальным серверам;
• нет ограничений на использование многопроцессорных платформ: количество
актуальных серверов может быть согласовано с количеством процессоров в
системе.
Модели серверов баз данных
Сервер
баз данных
CPUКлиент 1 Серверный
процесс 1
Серверный
процесс 2
. . . БД
Диспетчер
CPU
Клиент 2
Клиент N
(©) Владислав Лавров, vlavrov.com
21
Модель многопотоковой архитектуры с несколькими
серверами (многонитиевая мультисерверная архитектура)
Особенности
• возможности запуска нескольких серверов базы данных, в том числе и на различных
процессорах;
• каждый из серверов должен быть многопотоковым.
Модели серверов баз данных
(©) Владислав Лавров, vlavrov.com
22
Цель
Повысить производительность работы серверов баз данных за счет
разбиения пользовательского запроса на ряд подзапросов, которые могут
выполняться параллельно, а результаты их выполнения потом объединить
в общий результат выполнения запроса.
Способы
6.5. Распараллеливание выполнения запросов
• выполнение подзапросов отдельными серверными процессами
(нитями, threads)
• фрагментация выполнения запросов (параллелизм)
Виды параллелизма
• вертикальный
• горизонтальный
(©) Владислав Лавров, vlavrov.com
23
Распараллеливание выполнения запросов
План выполнения SQL-запроса
Запрос: Показать информацию о сотрудниках, зарплата которых превышает 3000.
Результат упорядочить по фамилиям в алфавитном порядке
ER-диаграмма
SQL-запрос
СОТРУДНИКИ ОТДЕЛЫ
НомерСотрудника
Фамилия
Оклад
НомерОтдела
………………
НомерОтдела
НаименованиеОтдела
Руководитель
ТелефонРуководителя
………………

1
SELECT *
FROM Сотрудники С, ОТДЕЛЫ О
WHERE С.Оклад > 3000
AND С.НомерОтдела = О.НомерОтдела
ORDER BY С.Фамилия
СОТРУДНИКИ ОТДЕЛЫ
Scan,
Restrict
Sort
Join
Sort
SortС.Оклад > 3000
С.НомерОтдела
С.НомерОтдела = О.НомерОтдела
О.НомерОтдела
С.Фамилия
(©) Владислав Лавров, vlavrov.com
Многонитиевая мультисерверная архитектура
(©) Владислав Лавров, vlavrov.com
6.6. Преимущества и перспективы системы клиент/сервер
Преимущества
• рабочая загрузка естественным
образом распределена на множестве
компьютеров;
• пользователи могут легко совместно
пользоваться данными;
• чувствительные к повреждениям
данные можно надежно защитить в
централизованном порядке;
• использование нескольких малых
компьютеров, предназначенных для
решения отдельных задач, улучшает
показатель «стоимость /
эффективность» по сравнению с
применением одного мощного
компьютера.
Недостатки
• проектировщик должен определить, какие
задачи следует выполнять клиенту, а какие –
серверу;
• проектировщик должен выбрать для решения
каждого типа задач подходящее аппаратное
обеспечение;
• переходы к новым версиям программного
обеспечения клиента должны
контролироваться очень строго;
• изменения конструкции базы данных сервера
могут повлиять на всех клиентов;
• сетевая топология часто очень сложна;
• контроль производительности и необходимые
регулировки могут оказаться немного
сложнее, чем при централизованной
архитектуре.
(©) Владислав Лавров, vlavrov.com

Weitere ähnliche Inhalte

Was ist angesagt?

Konspekt
KonspektKonspekt
Konspekt
Artem
 
Oracle Database 12c: Новые возможности Oracle 12c
Oracle Database 12c: Новые возможности Oracle 12cOracle Database 12c: Новые возможности Oracle 12c
Oracle Database 12c: Новые возможности Oracle 12c
Andrey Akulov
 
субд
субдсубд
субд
Sai_17
 
субд
субдсубд
субд
Sai_17
 
Отказоустойчивые решения SQL
Отказоустойчивые решения SQLОтказоустойчивые решения SQL
Отказоустойчивые решения SQL
Andrey Korshikov
 
основные понятия баз данных
основные понятия баз данныхосновные понятия баз данных
основные понятия баз данных
23padopi
 

Was ist angesagt? (20)

Oracle
OracleOracle
Oracle
 
Все самые важные команды SQL за 60 минут
Все самые важные команды SQL за 60 минутВсе самые важные команды SQL за 60 минут
Все самые важные команды SQL за 60 минут
 
О.В. Сухорослов "Распределенные хранилища данных"
О.В. Сухорослов "Распределенные хранилища данных"О.В. Сухорослов "Распределенные хранилища данных"
О.В. Сухорослов "Распределенные хранилища данных"
 
Konspekt
KonspektKonspekt
Konspekt
 
Example 14
Example 14Example 14
Example 14
 
Oracle Database 12c: Новые возможности Oracle 12c
Oracle Database 12c: Новые возможности Oracle 12cOracle Database 12c: Новые возможности Oracle 12c
Oracle Database 12c: Новые возможности Oracle 12c
 
Обзор инструментов Toad для администраторов Oracle
Обзор инструментов Toad для администраторов OracleОбзор инструментов Toad для администраторов Oracle
Обзор инструментов Toad для администраторов Oracle
 
Информатика (устройство ПК)
Информатика (устройство ПК)Информатика (устройство ПК)
Информатика (устройство ПК)
 
Projectarch
ProjectarchProjectarch
Projectarch
 
alee
aleealee
alee
 
субд
субдсубд
субд
 
субд
субдсубд
субд
 
Контент ориентированное программирование
Контент ориентированное программированиеКонтент ориентированное программирование
Контент ориентированное программирование
 
10 субд
10 субд10 субд
10 субд
 
Lekcia2
Lekcia2Lekcia2
Lekcia2
 
Отказоустойчивые решения SQL
Отказоустойчивые решения SQLОтказоустойчивые решения SQL
Отказоустойчивые решения SQL
 
Технический архив документов и чертежей
Технический архив документов и чертежейТехнический архив документов и чертежей
Технический архив документов и чертежей
 
Toad for Oracle для разработчиков – обзор, советы и скрытые возможности
Toad for Oracle для разработчиков – обзор, советы и скрытые возможностиToad for Oracle для разработчиков – обзор, советы и скрытые возможности
Toad for Oracle для разработчиков – обзор, советы и скрытые возможности
 
DBD lection 4. Big Data, NoSQL. In Russian.
DBD lection 4. Big Data, NoSQL. In Russian.DBD lection 4. Big Data, NoSQL. In Russian.
DBD lection 4. Big Data, NoSQL. In Russian.
 
основные понятия баз данных
основные понятия баз данныхосновные понятия баз данных
основные понятия баз данных
 

Andere mochten auch

Lecture15
Lecture15Lecture15
Lecture15
orgil
 

Andere mochten auch (20)

Управление данными (транзакции)
Управление данными (транзакции)Управление данными (транзакции)
Управление данными (транзакции)
 
МиСПИСиТ (источники ошибок)
МиСПИСиТ (источники ошибок)МиСПИСиТ (источники ошибок)
МиСПИСиТ (источники ошибок)
 
МиСПИСиТ (IDEF)
МиСПИСиТ (IDEF)МиСПИСиТ (IDEF)
МиСПИСиТ (IDEF)
 
МиСПИСиТ (введение)
МиСПИСиТ (введение)МиСПИСиТ (введение)
МиСПИСиТ (введение)
 
МиСПИСиТ (тестирование и отладка)
МиСПИСиТ (тестирование и отладка)МиСПИСиТ (тестирование и отладка)
МиСПИСиТ (тестирование и отладка)
 
МиСПИСиТ (архитектура)
МиСПИСиТ (архитектура)МиСПИСиТ (архитектура)
МиСПИСиТ (архитектура)
 
МиСПИСиТ (общие принципы разработки)
МиСПИСиТ (общие принципы разработки)МиСПИСиТ (общие принципы разработки)
МиСПИСиТ (общие принципы разработки)
 
МиСПИСиТ (структура)
МиСПИСиТ (структура)МиСПИСиТ (структура)
МиСПИСиТ (структура)
 
МиСПИСиТ (разработка программного модуля)
МиСПИСиТ (разработка программного модуля)МиСПИСиТ (разработка программного модуля)
МиСПИСиТ (разработка программного модуля)
 
Информатика (эффективный поиск в Интернет)
Информатика (эффективный поиск в Интернет)Информатика (эффективный поиск в Интернет)
Информатика (эффективный поиск в Интернет)
 
Образовательная программа ИСТ на кафедре ТИМ УрФУ
Образовательная программа ИСТ на кафедре ТИМ УрФУОбразовательная программа ИСТ на кафедре ТИМ УрФУ
Образовательная программа ИСТ на кафедре ТИМ УрФУ
 
1. Кафедра ТИМ УрФУ
1. Кафедра ТИМ УрФУ1. Кафедра ТИМ УрФУ
1. Кафедра ТИМ УрФУ
 
МиСПИСиТ (литература по курсу)
МиСПИСиТ (литература по курсу)МиСПИСиТ (литература по курсу)
МиСПИСиТ (литература по курсу)
 
МиСПИСиТ (жизненный цикл)
МиСПИСиТ (жизненный цикл)МиСПИСиТ (жизненный цикл)
МиСПИСиТ (жизненный цикл)
 
МиСПИСиТ (внешнее описание)
МиСПИСиТ (внешнее описание)МиСПИСиТ (внешнее описание)
МиСПИСиТ (внешнее описание)
 
3. Общая характеристика АСУ
3. Общая характеристика АСУ3. Общая характеристика АСУ
3. Общая характеристика АСУ
 
datatable ,dataset,datagridview in C#
datatable ,dataset,datagridview in C#datatable ,dataset,datagridview in C#
datatable ,dataset,datagridview in C#
 
.NET Development
.NET Development.NET Development
.NET Development
 
Кириллин Иван (МойСклад): Секреты работы с клиентской базой
Кириллин Иван (МойСклад): Секреты работы с клиентской базойКириллин Иван (МойСклад): Секреты работы с клиентской базой
Кириллин Иван (МойСклад): Секреты работы с клиентской базой
 
Lecture15
Lecture15Lecture15
Lecture15
 

Ähnlich wie Управление данными (распределенная обработка)

Sql Server Data Services
Sql Server Data ServicesSql Server Data Services
Sql Server Data Services
Media Gorod
 
1 открытые системы. клиент и сервер
1 открытые системы. клиент и сервер1 открытые системы. клиент и сервер
1 открытые системы. клиент и сервер
KewpaN
 
2 виды и особенности клиент серверных систем с бд
2 виды и особенности клиент серверных систем с бд2 виды и особенности клиент серверных систем с бд
2 виды и особенности клиент серверных систем с бд
KewpaN
 
13 расширенные возможности корпоративных приложений, основы субд
13 расширенные возможности корпоративных приложений, основы субд13 расширенные возможности корпоративных приложений, основы субд
13 расширенные возможности корпоративных приложений, основы субд
KewpaN
 

Ähnlich wie Управление данными (распределенная обработка) (20)

Sql Server Data Services
Sql Server Data ServicesSql Server Data Services
Sql Server Data Services
 
MW
MWMW
MW
 
1 открытые системы. клиент и сервер
1 открытые системы. клиент и сервер1 открытые системы. клиент и сервер
1 открытые системы. клиент и сервер
 
SQL Server Security Best Practices - Евгений Недашковский
SQL Server Security Best Practices - Евгений НедашковскийSQL Server Security Best Practices - Евгений Недашковский
SQL Server Security Best Practices - Евгений Недашковский
 
ASP.NET, MVC, ASP.NET MVC
ASP.NET, MVC, ASP.NET MVCASP.NET, MVC, ASP.NET MVC
ASP.NET, MVC, ASP.NET MVC
 
Система автоматизации бизнес-процессов на платформе K2 blackpearl в компании ...
Система автоматизации бизнес-процессов на платформе K2 blackpearl в компании ...Система автоматизации бизнес-процессов на платформе K2 blackpearl в компании ...
Система автоматизации бизнес-процессов на платформе K2 blackpearl в компании ...
 
DATA CLUSTER
DATA CLUSTERDATA CLUSTER
DATA CLUSTER
 
разработка бизнес приложений (9)
разработка бизнес приложений (9)разработка бизнес приложений (9)
разработка бизнес приложений (9)
 
2 виды и особенности клиент серверных систем с бд
2 виды и особенности клиент серверных систем с бд2 виды и особенности клиент серверных систем с бд
2 виды и особенности клиент серверных систем с бд
 
Развитие решений Cisco для ЦОД глазами специалиста по серверам и приложениям...
Развитие решений Cisco для ЦОД глазами специалиста по серверам и приложениям...Развитие решений Cisco для ЦОД глазами специалиста по серверам и приложениям...
Развитие решений Cisco для ЦОД глазами специалиста по серверам и приложениям...
 
04 - Базы данных. Архитектура СУБД
04 - Базы данных. Архитектура СУБД04 - Базы данных. Архитектура СУБД
04 - Базы данных. Архитектура СУБД
 
Проектирование и особенности проектирования клиент серверных экономических ин...
Проектирование и особенности проектирования клиент серверных экономических ин...Проектирование и особенности проектирования клиент серверных экономических ин...
Проектирование и особенности проектирования клиент серверных экономических ин...
 
лекция 4
лекция 4лекция 4
лекция 4
 
Mymanager
MymanagerMymanager
Mymanager
 
Распределённые приложения. Часть 1. «Клиент и ядро бизнес-логики»
Распределённые приложения. Часть 1.
«Клиент и ядро бизнес-логики»Распределённые приложения. Часть 1.
«Клиент и ядро бизнес-логики»
Распределённые приложения. Часть 1. «Клиент и ядро бизнес-логики»
 
13 расширенные возможности корпоративных приложений, основы субд
13 расширенные возможности корпоративных приложений, основы субд13 расширенные возможности корпоративных приложений, основы субд
13 расширенные возможности корпоративных приложений, основы субд
 
Ms it cup win-team - мевв
Ms it cup   win-team - меввMs it cup   win-team - мевв
Ms it cup win-team - мевв
 
CloudsNN 2013 Гаджиев Георгий. Windows azure iaas обзор
CloudsNN 2013 Гаджиев Георгий. Windows azure iaas обзорCloudsNN 2013 Гаджиев Георгий. Windows azure iaas обзор
CloudsNN 2013 Гаджиев Георгий. Windows azure iaas обзор
 
Андрей Зайчиков "Архитектура распределенных кластеров NoSQL на AWS"
Андрей Зайчиков "Архитектура распределенных кластеров NoSQL на AWS"Андрей Зайчиков "Архитектура распределенных кластеров NoSQL на AWS"
Андрей Зайчиков "Архитектура распределенных кластеров NoSQL на AWS"
 
лекц2
лекц2лекц2
лекц2
 

Mehr von Ural Federal University named after First President of Russia B.N. Yeltsin

Mehr von Ural Federal University named after First President of Russia B.N. Yeltsin (20)

2016 ВКР Черемискина Н.А.
2016 ВКР Черемискина Н.А.2016 ВКР Черемискина Н.А.
2016 ВКР Черемискина Н.А.
 
2016 ВКР Гребнева Н.В.
2016 ВКР Гребнева Н.В.2016 ВКР Гребнева Н.В.
2016 ВКР Гребнева Н.В.
 
2016 ВКР Имашева А.А.
2016 ВКР Имашева А.А.2016 ВКР Имашева А.А.
2016 ВКР Имашева А.А.
 
Введение в методы agile
Введение в методы agileВведение в методы agile
Введение в методы agile
 
ООП. Рекомендуемые информационные ресурсы
ООП. Рекомендуемые информационные ресурсыООП. Рекомендуемые информационные ресурсы
ООП. Рекомендуемые информационные ресурсы
 
Методоллогии Agile
Методоллогии AgileМетодоллогии Agile
Методоллогии Agile
 
3. Информация и ее роль
3. Информация и ее роль3. Информация и ее роль
3. Информация и ее роль
 
Наследование и полиморфизм
Наследование и полиморфизмНаследование и полиморфизм
Наследование и полиморфизм
 
Классы и объекты С#
Классы и объекты С#Классы и объекты С#
Классы и объекты С#
 
Составные части объектного подхода
Составные части объектного подходаСоставные части объектного подхода
Составные части объектного подхода
 
Интерфейсы
ИнтерфейсыИнтерфейсы
Интерфейсы
 
магистратура 09.04.02 ист на кафедре тим урфу+
магистратура 09.04.02 ист на кафедре тим урфу+магистратура 09.04.02 ист на кафедре тим урфу+
магистратура 09.04.02 ист на кафедре тим урфу+
 
магистратура 22.04.02 металлургия на кафедре тим+
магистратура 22.04.02 металлургия на кафедре тим+магистратура 22.04.02 металлургия на кафедре тим+
магистратура 22.04.02 металлургия на кафедре тим+
 
1.5 тп (технологические подходы)+
1.5 тп (технологические подходы)+1.5 тп (технологические подходы)+
1.5 тп (технологические подходы)+
 
1.4 тп (общие принципы разработки)+
1.4 тп (общие принципы разработки)+1.4 тп (общие принципы разработки)+
1.4 тп (общие принципы разработки)+
 
1.3 тп (источники ошибок)+
1.3 тп (источники ошибок)+1.3 тп (источники ошибок)+
1.3 тп (источники ошибок)+
 
2014 Сабиров Е.Р. презентация КП по ПБД
2014 Сабиров Е.Р. презентация КП по ПБД2014 Сабиров Е.Р. презентация КП по ПБД
2014 Сабиров Е.Р. презентация КП по ПБД
 
2014 Мищенко К.В. презентация КП по ПБД
2014 Мищенко К.В. презентация КП по ПБД2014 Мищенко К.В. презентация КП по ПБД
2014 Мищенко К.В. презентация КП по ПБД
 
2014 Пильщиков С.Н. презентация КП по ПБД
2014 Пильщиков С.Н. презентация КП по ПБД2014 Пильщиков С.Н. презентация КП по ПБД
2014 Пильщиков С.Н. презентация КП по ПБД
 
2014 диплом Терехова А.Ю
2014 диплом Терехова А.Ю2014 диплом Терехова А.Ю
2014 диплом Терехова А.Ю
 

Управление данными (распределенная обработка)

  • 1. Управление данными Часть 6. Распределенная обработка данных (©) Владислав Лавров, vlavrov.com
  • 2. 2 Система распределенной обработки данных Режим распределенного доступа к централизованной БД: - параллельный доступ к одной базе данных нескольких пользователей; - база данных физически расположена на одной машине. Система распределенных баз данных Режим параллельного доступа к распределенной БД: - база данных физически распределена по нескольким компьютерам, расположенным в сети; - к базе данных возможен параллельный доступ нескольких пользователей. Централизованная база данных Распределенная база данных (©) Владислав Лавров, vlavrov.com
  • 3. 3 Режимы работы с базами данных По количеству одновременно работающих пользователей По способу доступа По физическому распределению Классификационный признак, отличия: Современный режим работы (©) Владислав Лавров, vlavrov.com
  • 4. 4 6.1. Модели «клиент-сервер» в технологии баз данных Основные программные процессы: • «Клиент» сторона, запрашивающая функции/обслуживание • «Сервер» сторона, предоставляющая функции/обслуживание Запрос Клиент Сервер Результат Клиент Сервер Особенность На уровне программного обеспечения разделение системы на клиента и сервер является логическим, а именно процессы клиента и сервера могут физически размещаться как на одной, так и на разных машинах. (©) Владислав Лавров, vlavrov.com
  • 5. 5 Основной принцип технологии «клиент–сервер» применительно к технологии баз данных – разделение функций приложения на группы Основные функции стандартного интерактивного приложения : 1) функции ввода и отображения данных (Интерфейс пользователя, Presentation Logic, Логика представления); 2) прикладные функции, определяющие основные алгоритмы решения задач приложения (Business Logic, Бизнес-правила); 3) функции обработки данных внутри приложения (Database Logic); 4) функции управления информационными ресурсами (Database Manager System); 5) служебные функции, играющие роль связок между функциями первых четырех групп. (©) Владислав Лавров, vlavrov.com
  • 6. 6 Структура типового интерактивного приложения, работающего с базой данных СУБД Клиент Presentation Logic Business Logic Database Logic Служебные функции Сервер (©) Владислав Лавров, vlavrov.com
  • 7. 7 Презентационная логика (Presentation Logic) Это часть кода приложения, которая определяет что пользователь видит на своем экране, когда работает приложение. Основные задачи: • формирование экранных изображений; • чтение и запись в экранные формы информации; • управление экраном; • обработка движений мыши и нажатие клавиш клавиатуры. (©) Владислав Лавров, vlavrov.com
  • 8. 8 Бизнес-логика, или логика собственно приложений (Business Processing Logic) Это часть кода приложения, которая определяет алгоритмы решения конкретных задач приложения. В зависимости от конкретных функциональных требований и сложности задач может оказаться полезным подразделить эту часть на несколько компонентов (бизнес-правила, правила целостности и др.). Реализация Конкретная реализация каждого компонента может быть представлена в виде набора процедур (библиотек), класса или классов объектов, отдельных программ. Как правило, код компонентов пишут с использованием различных языков программирования, таких как С, С++, C#, Pascal, Visual Basic и др. (©) Владислав Лавров, vlavrov.com
  • 9. 9 Логика обработки данных, или логика доступа к данным (Database Logic) Это часть кода приложения, которая связана с обработкой данных внутри приложения. Назначение Осуществляет перевод специфических для конкретного приложения запросов на язык SQL (интерфейс к СУБД), получение результатов и перевод этих результатов обратно в специфические для конкретного приложения структуры данных. (©) Владислав Лавров, vlavrov.com
  • 10. 10 Процессор управления данными (Database Manager System Processing) Это собственно СУБД, которая обеспечивает хранение и управление базами данных. В идеале функции СУБД должны быть скрыты от бизнес-логики приложения, однако для рассмотрения архитектуры приложения их выделяют в отдельную часть приложения. (©) Владислав Лавров, vlavrov.com
  • 11. 11 Варианты архитектуры приложения Централизованная Все части приложения располагаются в единой среде и комбинируются внутри одной исполняемой программы. Децентрализованная Все задачи могут быть по-разному распределены между серверным и клиентским процессами. Различие архитектурных реализаций определяется тем: • как логические компоненты базы данных распределены в сети; • какие механизмы используются для связи компонентов между собой. Варианты (модели) построения архитектуры приложения: • двухуровневые модель файлового сервера (модель удалённого управления данными); модель удалённого доступа к данным; модель сервера баз данных; • трёхуровневая модель сервера приложений. (©) Владислав Лавров, vlavrov.com
  • 12. 12 Модель файлового сервера (File Server, FS) (модель удаленного управления данными) Преимущества • разделение монопольного приложения на два взаимодействующих процесса; • сервер (серверный процесс) может обслуживать множество клиентов Недостатки • высокий сетевой трафик, который связан с передачей по сети множества блоков и файлов, необходимых приложению; • узкий спектр операций манипулирования с данными, который определяется только файловыми командами. Драйвер «умеет» обрабатывать только простые запросы; • отсутствуют механизмы оптимизаций запросов и кэширования; • отсутствие адекватных средств безопасности доступа к данным (защита только на уровне файловой системы). Коммерческие реализации: •dBase •FoxPro •Clipper 6.2. Двухуровневые модели (©) Владислав Лавров, vlavrov.com
  • 13. 13 Модель удаленного доступа к данным (Remote Data Access, RDA) Преимущества • резко уменьшается загрузка сети, так как по ней от клиентов к серверу передаются не запросы на ввод-вывод в файловой терминологии, а запросы на SQL, и их объем существенно меньше. В ответ на запросы клиент получает только данные, релевантные (соответствующие смыслу) запросу, а не блоки файлов, как в FS-модели, • более гибкое распределение доступа к данным (на уровне отдельных записей); • унификация (стандартизация) интерфейса «клиент- сервер», стандартом при общении приложения-клиента и сервера становится язык SQL. Недостатки • запросы на языке SQL при интенсивной работе клиентских приложений могут существенно загрузить сеть; • сложность администрирования при изменении бизнес-правил, вызванная излишним дублированием кода приложений; • сервер играет пассивную роль, поэтому функции управления информационными ресурсами должен выполнять клиент. Коммерческие реализации: Microsoft Access Двухуровневые модели (©) Владислав Лавров, vlavrov.com
  • 14. 14 Модель сервера баз данных (Server DataBase) Требования к серверу • База данных должна в каждый момент отражать текущее состояние предметной области. Непротиворечивость хранимых в базе данных • База данных должна отражать некоторые общие правила предметной области (бизнес-правила) • Необходим постоянный контроль за состоянием базы данных, отслеживание всех изменений и адекватная реакция на них • Необходимо, чтобы возникновение некоторой ситуации в базе данных четко и оперативно влияло на ход выполнения прикладной задачи. • Необходимо контролировать в базе данных семантическую составляющую бизнес-правил. Механизмы на сервере для реализации требований • Хранимые процедуры (Stored Procedure) • Триггеры (Trigger) Двухуровневые модели (©) Владислав Лавров, vlavrov.com
  • 15. Модель сервера баз данных (Server DataBase) Преимущества • снижение сетевого трафика; • реализация общей для клиентов бизнес-логики средствами сервера, что существенно уменьшает дублирование алгоритмов обработки данных в разных клиентских приложениях; • упрощение администрирования сервера БД (наличие встроенных механизмов решения административных задач по обслуживанию сервера, например репликации данных между серверами, автоматического запуска задач, оповещения и др.). Недостатки • очень большая загрузка сервера; • в настоящее время в коммерческих СУБД нет удобного инструмента для написания и отладки хранимых процедур и триггеров; • отсутствие стандартов на хранимые процедуры. Коммерческие реализации: • Oracle • Microsoft SQL Server Двухуровневые модели (©) Владислав Лавров, vlavrov.com
  • 16. 16 Модель сервера приложений (Application Server, AS) Преимущества • преодоление фундаментальных ограничений двухуровневой архитектуры по количеству одновременно подключенных клиентов; • модель обладает большей гибкостью, чем двухуровневые модели. Наиболее заметны преимущества в случаях выполнения сложных аналитические расчетов над базой данных (OLAP, On-line analytical processing); • повышение переносимости системы и ее масштабируемости, поскольку большая часть бизнес-логики клиента изолирована от возможностей встроенного SQL, реализованного в конкретной СУБД, и может быть выполнена на стандартных языках программирования. Недостаток • сложность программирования системы баз данных 6.3. Трехуровневая модель (©) Владислав Лавров, vlavrov.com
  • 17. 17 Архитектуры построения серверов баз данных • Модель «один-к-одному» • Модель системы с выделенным сервером • Модель виртуального сервера • Модель многопотоковой архитектуры с несколькими серверами 6.4. Модели серверов баз данных (©) Владислав Лавров, vlavrov.com
  • 18. 18 Модель «один-к-одному» Особенности • сервер обслуживает запросы только одного пользователя (клиента), • для обслуживания нескольких клиентов нужно было запустить эквивалентное число серверов (серверных процессов в операционной системе) • каждый серверный процесс в этой модели запускается как независимый, поэтому если один клиент сформировал запрос, который был только что выполнен другим серверным процессом для другого клиента, то запрос тем не менее выполнялся повторно. Модели серверов баз данных (©) Владислав Лавров, vlavrov.com
  • 19. 19 Система в выделенным сервером (многопотоковая односерверная архитектура, multi-threaded) Особенности • единственный серверный процесс обладает монополией на управление данными и взаимодействует одновременно со многими клиентами; • логически каждый клиент связан с сервером отдельной нитью («thread»), или потоком, по которому пересылаются запросы. Модели серверов баз данных (©) Владислав Лавров, vlavrov.com
  • 20. 20 Модель виртуального сервера (virtual server) Особенности • клиенты подключаются не к реальному серверу, а к промежуточному звену, называемому диспетчером, который выполняет только функции диспетчеризации запросов к актуальным серверам; • нет ограничений на использование многопроцессорных платформ: количество актуальных серверов может быть согласовано с количеством процессоров в системе. Модели серверов баз данных Сервер баз данных CPUКлиент 1 Серверный процесс 1 Серверный процесс 2 . . . БД Диспетчер CPU Клиент 2 Клиент N (©) Владислав Лавров, vlavrov.com
  • 21. 21 Модель многопотоковой архитектуры с несколькими серверами (многонитиевая мультисерверная архитектура) Особенности • возможности запуска нескольких серверов базы данных, в том числе и на различных процессорах; • каждый из серверов должен быть многопотоковым. Модели серверов баз данных (©) Владислав Лавров, vlavrov.com
  • 22. 22 Цель Повысить производительность работы серверов баз данных за счет разбиения пользовательского запроса на ряд подзапросов, которые могут выполняться параллельно, а результаты их выполнения потом объединить в общий результат выполнения запроса. Способы 6.5. Распараллеливание выполнения запросов • выполнение подзапросов отдельными серверными процессами (нитями, threads) • фрагментация выполнения запросов (параллелизм) Виды параллелизма • вертикальный • горизонтальный (©) Владислав Лавров, vlavrov.com
  • 23. 23 Распараллеливание выполнения запросов План выполнения SQL-запроса Запрос: Показать информацию о сотрудниках, зарплата которых превышает 3000. Результат упорядочить по фамилиям в алфавитном порядке ER-диаграмма SQL-запрос СОТРУДНИКИ ОТДЕЛЫ НомерСотрудника Фамилия Оклад НомерОтдела ……………… НомерОтдела НаименованиеОтдела Руководитель ТелефонРуководителя ………………  1 SELECT * FROM Сотрудники С, ОТДЕЛЫ О WHERE С.Оклад > 3000 AND С.НомерОтдела = О.НомерОтдела ORDER BY С.Фамилия СОТРУДНИКИ ОТДЕЛЫ Scan, Restrict Sort Join Sort SortС.Оклад > 3000 С.НомерОтдела С.НомерОтдела = О.НомерОтдела О.НомерОтдела С.Фамилия (©) Владислав Лавров, vlavrov.com
  • 25. 6.6. Преимущества и перспективы системы клиент/сервер Преимущества • рабочая загрузка естественным образом распределена на множестве компьютеров; • пользователи могут легко совместно пользоваться данными; • чувствительные к повреждениям данные можно надежно защитить в централизованном порядке; • использование нескольких малых компьютеров, предназначенных для решения отдельных задач, улучшает показатель «стоимость / эффективность» по сравнению с применением одного мощного компьютера. Недостатки • проектировщик должен определить, какие задачи следует выполнять клиенту, а какие – серверу; • проектировщик должен выбрать для решения каждого типа задач подходящее аппаратное обеспечение; • переходы к новым версиям программного обеспечения клиента должны контролироваться очень строго; • изменения конструкции базы данных сервера могут повлиять на всех клиентов; • сетевая топология часто очень сложна; • контроль производительности и необходимые регулировки могут оказаться немного сложнее, чем при централизованной архитектуре. (©) Владислав Лавров, vlavrov.com