Лекция
Привет, Вы узнаете о том , что такое пользователь бд , Разберем основные их виды и особенности использования. Еще будет много подробных примеров и описаний. Для того чтобы лучше понимать что такое пользователь бд , запрос sql, логическая структура бд, топология бд, структура распределенной бд, локальная автономность , удаленный запрос, удаленная транзакция, поддержка распределенной транзакции , распределенный запрос , настоятельно рекомендую прочитать все из категории Базы данных, знаний и хранилища данных. Big data, СУБД и SQL и noSQL.
Системы управления удаленными (распределенными) базами данных — это СУБД (СУРБД), обеспечивающие возможность одновременного доступа к информации различным пользователям.
Рассмотрим термины, применяемые в системах управления распределенными базами данных.
Архитектура БД — организация взаимодействия аппаратных средств.
Виды архитектуры БД: клиент—сервер, двухуровневая и трехуровневая клиент-сервер, файл —сервер.
Архитектура ODBC (Open DataBase Connectivity) — открытый интерфейс доступа к базам данных, т.е. взаимодействие процессора (ядра) базы данных Jet с внешними источниками данных.
Модели данных — схемы, характеризующие базы данных с разных сторон с целью определить оптимальное построение информационной системы.
Ядро базы данных — внутренняя структура СУБД, обеспечивающая доступ ко всем компонентам базы данных. В новых версиях СУБД Access называется Microsoft Data Engine (MSDE); в ранних версиях ядро базы данных называлось машина базы данных Microsoft Jet. Ядро базы данных обеспечивает поддержку символов различных алфавитов, синтаксис языка SQL и другие средства обработки различных типов данных.
пользователь бд — программа или человек, обращающийся к базе данных.
Запрос — процесс обращения пользователя к БД с целью ввести, получить или изменить информацию.
Транзакция — последовательность операций модификации данных в БД, переводящая ее из одного непротиворечивого состояния в другое непротиворечивое состояние.
логическая структура бд — определение БД на физически независимом уровне, что ближе всего соответствует концептуальной ее модели.
топология бд , или структура распределенной бд , — схема распределения физической организации базы данных в сети.
локальная автономность — понятие, означающее, что информация локальной БД и связанные с ней определения данных принадлежат локальному владельцу и им управляются.
удаленный запрос — запрос к базам данных, находящихся на ресурсах локальной сети предприятия или сети Интернет.
Возможность реализации удаленной транзакции — обработка одной транзакции, состоящей из множества SQL-запросов, на одном удаленном узле.
поддержка распределенной транзакции — обработка транзакции, состоящей из нескольких SQL-запросов, выполняемых на нескольких узлах сети (удаленных или локальных), но каждый из которых обрабатывается только на одном узле.
распределенный запрос — запрос, при обработке которого используются данные из БД, расположенные в разных узлах сети.
Системы распределенной обработки данных в основном связаны с первым поколением БД, которые строились на мультипрограммных операционных системах, хранились на устройствах внешней памяти центральной ЭВМ и использовали терминальный многопользовательский режим доступа. При этом пользовательские терминалы не имели собственных ресурсов, т.е. процессоров и памяти, которые могли бы использоваться для хранения и обработки данных. Первой полностью реляционной системой, работающей в многопользовательском режиме, была СУБД SYSTEM R фирмы IBM. Именно в ней были реализованы как язык манипулирования данными SQL, так и основные принципы синхронизации, применяемые при распределенной обработке данных, которые до сих пор являются базисными практически во всех коммерческих СУБД.
Вычислительная модель клиент-сервер исходно связана с появлением открытых систем в 1990-х гг. Термин клиент—сервер применялся к архитектуре программного обеспечения, состоящего из двух процессов обработки информации: клиентского и серверного. Клиентский процесс запрашивал некоторые услуги, а серверный — обеспечивал их выполнение. При этом предполагалось, что один серверный процесс может обслужить множество клиентских процессов. Учитывая, что аппаратная реализация этой модели управления базами данных связана с созданием локальных вычислительных сетей предприятия, такую организацию процесса обработки информации называют архитектурой клиент—сервер.
Основной принцип модели клиент—сервер применительно к технологии управления базами данных заключается в разделении функций стандартного интерактивного приложения на пять групп, имеющих различную природу:
функции ввода и отображения данных (Presentation Logic);
прикладные функции, определяющие основные алгоритмы решения задач приложения (Business Logic);
функции обработки данных внутри приложения (DataBase Logic);
функции управления информационными ресурсами (DataBase Manager System);
служебные функции, играющие роль связок между функциями первых четырех групп.
Структура типового приложения, работающего с базой данных в архитектуре клиент—сервер, приведена рис. 1.1.
Как видно из рис. 1.1, клиентская часть приложения включает в себя следующие части:
презентационную логику;
бизнес-логику, или логику собственно приложений;
логику обработки данных;
процессор управления данными.
Презентационная логика (Presentation Logic) как часть приложения определяется тем, что пользователь видит на своем экране, что приложение работает. Сюда относятся все интерфейсные экранные формы, которые пользователь видит или заполняет в ходе работы приложения, а также все то, что выводится пользователю на экран в качестве результатов решения некоторых про-
Клиент
Рис. 1.1. Структура типового приложения, работающего с базой данных
межуточных задач либо как справочная информация. Следовательно, основными задачами презентационной логики являются:
формирование экранных изображений;
чтение и запись в экранные формы информации;
управление экраном;
обработка движений мыши и нажатие клавиш клавиатуры.
Бизнес-логика, или логика собственно приложений (Business
Processing Logic), — это часть кода приложения, которая определяет собственно алгоритмы решения конкретных его задач. Обычно этот код записывается с использованием различных языков программирования, таких как С, С++, Visual Basic и др.
Логика обработки данных (Data Manipulation Logic) — это часть кода приложения, которая непосредственно связана с обработкой данных внутри него. Далными управляет собственно СУБД, а для обеспечения доступа к ним используется язык SQL.
Процессор управления данными (DataBase Manager System Processing) — это собственно СУБД, которая обеспечивает хранение и управление базами данных. В идеале функции СУБД должны быть скрыты от бизнес-логики приложения, однако при рассмотрении архитектуры приложения мы выделим их в отдельную его часть.
Рис. Об этом говорит сайт https://intellect.icu . 1.2. Распределение функций компонентов приложения в моделях
клиент—север
В централизованной архитектуре (Host-Based Processing) указанные части приложения располагаются в единой среде и комбинируются внутри одной исполняемой программы. В децентрализованной архитектуре эти части приложения могут быть по-разному распределены между серверным и клиентским процессами.
В зависимости от характера распределений задач можно выделить следующие их модели (рис. 1.2):
распределенное представление (Distribution Presentation);
удаленное представление (Remote Presentation);
распределенная бизнес-логика (Remote Business Logic);
удаленное управление данными (Remote Data Management);
распределенное управление данными (Distributed Data Management).
Эта условная классификации показывает, как могут быть распределены отдельные задачи между серверным и клиентскими процессами. В данной классификации отсутствует реализация удаленной бизнес-логики, так как считается, что она не может быть удалена полностью, а может быть лишь распределена между разными процессами, которые могут взаимодействовать друг с другом.
Двухуровневые модели управления БД фактически являются результатом распределения пяти указанных ранее групп функций стандартного интерактивного приложения между двумя процессами, выполняемыми на двух платформах: компьютере клиента и на сервере. В чистом виде не существует ни одна из них, однако рассмотрим наиболее характерные особенности каждой двухуровневой модели.
Модель удаленного управления данными, или модель файлового сервера (File Server — FS). В этой модели презентационная логика и бизнес-логика располагаются на клиентской части. На сервере располагаются файлы с данными и поддерживается доступ к этим файлам. Функции управления информационными ресурсами в этой модели находятся на клиентской части.
Распределение функций компонентов приложения в моделях клиент — сервер представлено на рис. 1.3.
В этой модели файлы базы данных хранятся на сервере, клиент обращается к серверу с файловыми командами, а механизм управления всеми информационными ресурсами — собственно база метаданных (выбранных данных) — находится на компьютере клиента.
Рис. 1.3. Модель файлового сервера
Д остоинство данной модели состоит в том, что приложение разделено на два взаимодействующих процесса. При этом сервер
(серверный процесс) может обслуживать множество клиентов, которые обращаются к нему с запросами. Собственно СУБД должна находиться в этой модели на компьютере клиента.
Алгоритм выполнения клиентского запроса сводится к следующему.
Запрос формулируется в командах языка манипулирования данными (ЯМД).
СУБД переводит этот запрос в последовательность файловых команд.
Каждая файловая команда вызывает перекачку блока информации на компьютер клиента, а СУБД анализирует полученную информацию, и если в полученном блоке не содержится ответ на запрос, принимается решение о перекачке следующего блока информации и т.д.
Перекачка информации с сервера на клиентский компьютер производится до тех пор, пока не будет получен ответ на запрос клиента.
Рассмотренная модель имеет следующие недостатки:
высокий сетевой трафик, который связан с передачей по сети множества блоков и файлов, необходимых приложению;
узкий спектр операций манипулирования с данными, определяемый только файловыми командами;
отсутствие адекватных средств безопасности доступа к данным (защита только на уровне файловой системы).
Рис. 1.4. Структура модели удаленного доступа к данным
Модель удаленного доступа к данным (Remote Data Access — RDA). В этой модели база данных хранится на сервере. Там же находится и ядро СУБД. На компьютере клиента располагаются презентационная логика и бизнес-логика приложения. Клиент обращается к серверу с запросами на языке SQL. Структура модели удаленного доступа к данным приведена на рис. 1.4.
Преимущества данной модели состоят в следующем:
перенос компонента представления и прикладного компонента на клиентский компьютер существенно разгружает сервер БД, сводя к минимуму общее число выполняемых процессов в операционной системе;
сервер БД освобождается от несвойственных ему функций, а процессор или процессоры сервера целиком загружаются операциями обработки данных запросов и транзакций;
резко уменьшается загрузка сети, так как по ней от клиентов к серверу передаются не запросы на ввод-вывод в файловой терминологии, а запросы на языке SQL, объем которых существенно меньше. В ответ же на эти запросы клиент получает только данные, соответствующие запросу, а не блоки файлов.
Основным достоинством модели RDA является унификация интерфейса клиент—сервер, т.е. стандартным при общении приложения клиента и сервера становится язык SQL.
Недостатки данной модели:
запросы на языке SQL при интенсивной работе клиентской части приложения могут существенно загрузить сеть;
так как в этой модели на компьютере клиента располагаются и презентационная логика, и бизнес-логика приложения, при повторении аналогичных функций в других приложениях код, соответствующей бизнес-логики, должен быть повторен для каждого клиентского приложения, что вызывает излишнее их дублирование;
так как сервер в этой модели играет пассивную роль, функции управления информационными ресурсами должны выполняться на компьютере клиента.Модель сервера баз данных. Для исключения недостатков модели удаленного доступа к данным необходимо выполнение следующих условий.
БД в каждый момент времени должна отражать текущее состояние предметной области, которое определяется не только собственно данными, но и связями между объектами данных, т.е. данные, которые хранятся в БД, в каждый момент времени должны быть непротиворечивыми.
БД должна отражать некоторые правила предметной области и законы, по которым она функционирует (Business Rules). Например, завод может нормально работать, только если на складе имеется достаточный (страховой) запас деталей определенной номенклатуры, а деталь может быть запущена в производство, только если на складе имеется достаточно материала для ее изготовления, и т.д.
Обеспечение постоянного контроля за состоянием БД, отслеживание всех изменений и адекватная реакция на них. Например, при достижении некоторым измеряемым параметром критического значения должно произойти отключение определенной аппаратуры, при уменьшении товарного запаса ниже допустимой нормы должна быть сформирована заявка конкретному поставщику на поставку соответствующего товара и т. п.
Возникновение некоторой ситуации в БД должно четко и оперативно влиять на ход выполнения прикладной задачи.
Совершенствование контроля типов данных СУБД. В настоящее время СУБД контролирует синтаксически только стандарт- но-допустимые типы данных, т. е. которые определены в DDL (Data Definition Language) — языке описания данных, являющемся частью SQL. Однако в реальных предметных областях существуют данные, которые несут в себе еще и семантическую составляющую, например координаты объектов или единицы измерений.
Модель сервера баз данных поддерживают большинство современных СУБД: Informix, Ingres, Sybase, Oracle, MS SQL Server. Основу данной модели составляют: механизм хранимых процедур как средство программирования SQL-сервера, механизм триггеров как механизм отслеживания текущего состояния информационного хранилища и механизм ограничений на пользовательские типы данных, который иногда называют механизмом поддержки доменной структуры.
Модель активного сервера базы данных представлена на рис. 1.5. В этой модели бизнес-логика разделена между клиентом и сервером. На сервере бизнес-логика реализована в виде хранимых процедур — специальных программных модулей, которые хранятся в БД и управляются непосредственно СУБД. Клиентское приложение обращается к серверу с командой запуска хранимой процедуры, а сервер выполняет эту процедуру и регистрирует все предус-
Рис. 1.5. Модель активного сервера базы данных
мотренные изменения в БД. Сервер возвращает клиенту данные выполненного запроса, которые требуются клиенту либо для вывода на экран, либо для выполнения части бизнес-логики. При этом трафик обмена информацией между клиентом и сервером резко уменьшается.
Централизованный контроль в модели сервера баз данных выполняется с использованием механизма триггеров, которые также являются частью БД.
Термин «триггер», взятый из электроники, семантически очень точно характеризует механизм отслеживания специальных событий, связанных с состоянием БД. Триггер является как бы некоторым тумблером, который срабатывает при возникновении определенного события в БД. Ядро СУБД проводит мониторинг всех событий, вызывающих созданные и описанные триггеры в БД, и при возникновении такого события сервер запускает соответствующий триггер. Каждый триггер представляет собой также некоторую программу, которая выполняется с базой данных. С помощью триггеров можно вызывать хранимые процедуры.
Механизм использования триггеров предполагает, что при срабатывании одного из них могут возникнуть события, которые вызовут срабатывание других.
В данной модели сервер является активным, так как в ней не только клиент, но и сам сервер, используя механизм триггеров, может быть инициатором обработки данных в БД.
Хранимые процедуры и триггеры хранятся в словаре БД и, следовательно, могут быть использованы несколькими клиентами, что существенно уменьшает дублирование алгоритмов обработки данных в разных клиентских приложениях.
Недостатком данной модели является очень большая загрузка сервера, так как он обслуживает множество клиентов и выполняет следующие функции:
• осуществляет мониторинг событий, связанных с выполнением разработанных триггеров;
обеспечивает автоматическое срабатывание триггеров при возникновении связанных с ними событий;
обеспечивает исполнение внутренней программы каждого триггера;
запускает хранимые процедуры по запросам пользователей;
запускает хранимые процедуры из триггеров;
возвращает требуемые данные клиенту;
обеспечивает выполнение всех функций СУБД (доступ к данным, контроль и поддержку целостности данных в БД, контроль доступа, обеспечение корректной параллельной работы всех пользователей с единой БД).
Если перенести на сервер большую часть бизнес-логики приложений, то требования к клиентам в этой модели резко уменьшатся. Иногда такую модель называют моделью с тонким клиентом, а рассмотренные ранее модели — моделями с толстым клиентом.
Модель сервера приложений. Эта трехуровневая модель, являющаяся расширением двухуровневой модели, т.е. с введенным дополнительным промежуточным уровнем между клиентом и сервером, была предложена для разгрузки сервера.
Архитектура трехуровневой модели приведена на рис. 1.6. Промежуточный уровень может содержать один или несколько серверов приложений.
В данной модели компоненты приложения делятся между тремя исполнителями: клиентом, сервером приложений и сервером базы данных.
Клиент обеспечивает логику представления, включая графический пользовательский интерфейс и локальные редакторы. Клиент может запускать локальный код приложения клиента, который может содержать обращения к локальной БД, расположенной на его компьютере. Клиент исполняет коммуникационные функции front-end части приложения, обеспечивающие ему доступ в локальную или глобальную сеть. Дополнительно реализация взаимодействия между клиентом и сервером может включать в себя управление распределенными транзакциями, что соответствует случаям, когда клиент также является клиентом менеджера распределенных транзакций.
Рис. 1.6. Модель сервера приложений
Серверы приложений, составляющие новый промежуточный уровень архитектуры модели, спроектированы для исполнения общих не загружаемых функций клиентов. Серверы приложений поддерживают функции клиентов как частей взаимодействующих рабочих групп, сетевую доменную операционную среду и каталоги с данными, а также хранят и исполняют наиболее общие правила бизнес-логики, обеспечивают обмен сообщениями и поддержку запросов (особенно в распределенных транзакциях).
Серверы баз данных в этой модели занимаются исключительно функциями СУБД: обеспечивают функции создания и ведения БД, поддерживают целостность реляционной БД, обеспечивают функции хранилищ данных (warehouse services). Кроме того, на них возлагаются функции создания резервных копий БД и восстановления БД после сбоев, управления выполнением транзакций и поддержки устаревших (унаследованных) приложений (legacy application).
Данная модель обладает большей гибкостью, чем двухуровневые модели. Наиболее заметны преимущества модели сервера приложений в тех случаях, когда выполняются сложные аналитические расчеты в базе данных, относящихся к области OLAP-при- ложений (On-line analytical processing). В этой модели большая часть бизнес-логики клиента изолирована от возможностей встроенного языка SQL, реализованного в конкретной СУБД, и может быть выполнена на языках программирования С, С++, Sir.i. Talk, Cobol, что повышает переносимость системы и ее масштабируемость.
Модели серверов баз данных. При создании первых СУБД технология клиент—сервер только зарождалась, поэтому изначально в архитектуре этих систем не было адекватного механизма организации взаимодействия клиентского и серверного процессов. В современных СУБД этот механизм является фактически основополагающим и от эффективности его реализации зависит эффективность работы системы в целом.
Рассмотрим эволюцию подобных механизмов. В основном такой механизм определяется структурой реализации серверных процессов и часто называется архитектурой сервера баз данных.
Как уже отмечалось, поначалу существовала модель, в которой управление данными (функция сервера) и взаимодействие с пользователем были совмещены в одной программе. Этот этап развития серверов БД можно назвать нулевым.
Затем функции управления данными были выделены в самостоятельную группу — сервер. Однако при этом модель взаимодействия пользователя с сервером соответствовала структуре связей между таблицами баз данных «один к одному» (рис. 1.7), т.е. сервер обслуживал запросы только одного пользователя (клиента), а для обслуживания нескольких клиентов нужно было запустить соответствующее число серверов.
Рис. 1.7. Взаимодействие клиентских и серверных процессов в модели
«один к одному»
Выделение сервера в отдельную программу было революционным шагом, который позволил, в частности, поместить сервер на одну машину, а программный интерфейс с пользователем — на другую и осуществлять взаимодействие между ними по сети. Однако необходимость запуска большого числа серверов для обслуживания множества пользователей сильно ограничивала возможности такой системы. Для обслуживания большого числа клиентов на сервере следовало одновременно запустить в работу большое число серверных процессов, что резко повышало требования к ресурсам ЭВМ.
Кроме того, каждый серверный процесс в этой модели запускался как независимый, поэтому запрос, который только что был выполнен одним серверным процессом, при формировании его другим клиентом выполнялся повторно. В такой модели сложно обеспечить взаимодействие серверных процессов. Эта модель серверов баз данных самая простая, и исторически она появилась первой.
Проблемы, возникающие в информационной модели «один к одному», решены в архитектуре систем с выделенным сервером, который способен обрабатывать запросы от многих клиентов. В этой системе сервер единственный обладает монополией на управление данными и взаимодействует одновременно со многими клиентами (рис. 1.8). Логически каждый клиент связан с сервером от-
Рис. 1.8. Многопотоковая односерверная архитектура
дельной нитью (thread) или потоком, по которому пересылаются запросы. Такая архитектура, получившая название многопотоковой односерверной (multi-threaded), позволяет значительно уменьшить нагрузку на операционную систему, возникающую при работе большого числа пользователей (trashing).
Кроме того, обеспеченная в данной модели возможность взаимодействия многих клиентов с одним сервером позволяет в полной мере использовать разделяемые объекты (начиная с открытых файлов и заканчивая данными из системных каталогов), что значительно уменьшает потребность в памяти и общее число процессов операционной системы. Например, в модели «один к одному» СУБД создает 100 копий процессов для 100 пользователей, а системе с многопотоковой архитектурой для этого понадобится только один серверный процесс.
Однако такое решение имеет свои недостатки. Так как сервер может выполняться только на одном процессоре, возникает естественное ограничение на применение СУБД для мультипроцессорных платформ. Если компьютер имеет, например, четыре процессора, то СУБД с одним сервером использует только один из них, не загружая другие три.
Исследование, описанное в статье про пользователь бд , подчеркивает ее значимость в современном мире. Надеюсь, что теперь ты понял что такое пользователь бд , запрос sql, логическая структура бд, топология бд, структура распределенной бд, локальная автономность , удаленный запрос, удаленная транзакция, поддержка распределенной транзакции , распределенный запрос и для чего все это нужно, а если не понял, или есть замечания, то не стесняйся, пиши или спрашивай в комментариях, с удовольствием отвечу. Для того чтобы глубже понять настоятельно рекомендую изучить всю информацию из категории Базы данных, знаний и хранилища данных. Big data, СУБД и SQL и noSQL
Ответы на вопросы для самопроверки пишите в комментариях, мы проверим, или же задавайте свой вопрос по данной теме.
Комментарии
Оставить комментарий
Базы данных, знаний и хранилища данных. Big data, СУБД и SQL и noSQL
Термины: Базы данных, знаний и хранилища данных. Big data, СУБД и SQL и noSQL