История сайта

Виды архитектур баз данных

Дрели, бензоинстументы и гидротехника
7. Архитектура реляционной СУБД, составные части РСУБД. Архитектура «файл-сервер», «клиент-сервер», многозвенная архитектура.

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

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

По распространенности и популярности реляционные СУБД сегодня  вне конкуренции. Они стали фактическим промышленным стандартом, она была разработана Коддом еще в 1969-70 годах на основе математической теории отношений и опирается на систему понятий, важнейшими из которых являются таблица, отношение, строка, столбец, первичный ключ, внешний ключ.

Реляционная база данных — база данных, основанная на реляционной модели данных. Слово «реляционный» происходит от англ. relation (отношение). Для работы с реляционными БД применяют реляционные СУБД.

Реляционной считается такая база данных, в которой все данные представлены для пользователя в виде прямоугольных таблиц значений данных, и все операции над базой данных сводятся к манипуляциям с таблицами. Согласно Дейту реляционная модель состоит из трех частей, описывающих разные аспекты реляционного подхода: структурной части, манипуляционной части и целостной части.

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

В манипуляционной части модели утверждаются два фундаментальных механизма манипулирования реляционными базами данных — реляционная алгебра и реляционное исчисление. Первый механизм базируется в основном на классической теории множеств с некоторыми уточнениями, а второй — на классическом логическом аппарате исчисления предикатов первого порядка. Основной функцией манипуляционной части реляционной модели является обеспечение меры реляционности любого конкретного языка реляционных БД: язык называется реляционным, если он обладает не меньшей выразительностью и мощностью, чем реляционная алгебра или реляционное исчисление.

В целостной части реляционной модели данных фиксируются два базовых требования целостности, которые должны поддерживаться в любой реляционной СУБД – требование целостности сущностей и требование целостности по ссылкам.

В зависимости от расположения отдельных частей СУБД различают локальные и сетевые СУБД.

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

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

В файл-серверных СУБД все данные обычно размещаются в одном или нескольких каталогах достаточно мощной машины, специально выделенной для этих целей и постоянно подключенной к сети. Такой компьютер называется файл-сервером — отсюда название СУБД. Безусловным достоинством СУБД этого типа является относительная простота ее создания и обслуживания — фактически все сводится лишь к развертыванию локальной сети и установке на подключенных к ней компьютерах сетевых операционных систем. По счастью, Delphi «умеет» использовать сетевые средства самой популярной в мире ОС — Windows — для создания соответствующих клиентских мест, то есть специального программного обеспечения компьютеров пользователей. Нетрудно заметить, что между локальными и файл-серверными вариантами СУБД нет особых различий, так как в них все части собственно СУБД (кроме данных) находятся на компьютере клиента. По архитектуре они обычно являются однозвенными, но в некоторых случаях могут использовать сервер приложений. Недостатком файл-серверных систем является значительная нагрузка на сеть. Если, например, клиенту нужно отыскать сведения об одной из фирм-партнеров, по сети вначале передается весь файл, содержащий сведения о многих сотнях партнеров, и лишь затем в созданной таким образом локальной копии данных отыскивается нужная запись. Ясно, что при интенсивной работе с данными уже нескольких десятков клиентов пропускная способность сети может оказаться недостаточной, и пользователя будут раздражать значительные задержки в реакции СУБД на его требования. Файл-серверные СУБД могут успешно использоваться в относительно небольших фирмах с количеством клиентских мест до нескольких десятков.

Клиент-серверные (двухзвенные) системы значительно снижают нагрузку на сеть, так как клиент общается с данными через специализированного посредника — сервер базы данных, который размещается на машине с данными. Сервер БД принимает запрос от клиента, отыскивает в данных нужную запись и передает ее клиенту. Таким образом, по сети передается относительно короткий запрос и единственная нужная запись, даже если соответствующий файл с данными содержит сотни тысяч записей. Запрос к серверу формируется на специальном языке структурированных запросов (Structured Query Language, SQL), поэтому часто серверы БД называются SQL-серверами. Серверы БД представляют собой относительно сложные программы, изготавливаемые различными фирмами. К ним относятся, например, Microsoft SQL Server производства корпорации Microsoft, Sybase SQL Server корпорации Sybase, Oracle производства одноименной корпорации1, DB2 корпорации IBM и т. д. SQL-сервером является также и сервер InterBase корпорации Inprise, который поставляется вместе с Delphi в комплектации Enterprise. Клиент-серверные СУБД масштабируются до сотен и тысяч клиентских мест.

Распределенные СУБД могут содержать несколько десятков и сотен серверов БД. Количество клиентских мест в них может достигать десятков и сотен тысяч. Обычно такие СУБД работают на предприятиях государственного масштаба, отдельные подразделения которых разнесены на значительной территории. К таковым, например, относятся подразделения Министерства обороны и Министерства внутренних дел. В распределенных СУБД некоторые серверы могут дублировать друг друга с целью достижения предельно малой вероятности отказов и сбоев, которые могут исказить жизненно важную информацию. Они используют собственные региональные средства связи. Интерес к распределенным СУБД возрос в связи со стремительным развитием Интернета. Опираясь на возможности Интернета, распределенные системы строят не только предприятия государственного масштаба, но и относительно небольшие коммерческие предприятия, обеспечивая своим сотрудникам работу с корпоративными данными на дому и в командировках.

Многозвенная архитектура приложений баз данных вызвана к жизни необходимостью обрабатывать на стороне сервера запросы от большого числа удаленных клиентов. Казалось бы, с этой задачей вполне могут справиться и приложения клиент/сервер. Однако в этом случае при большом числе клиентов вся вычислительная нагрузка ложится на сервер БД, который обладает довольно скудным набором средств для реализации сложной бизнес-логики (хранимые процедуры, триггеры, просмотры и т. д.). И разработчики вынуждены существенно усложнять программный код клиентского ПО, а это крайне нежелательно при наличии большого числа удаленных клиентских компьютеров. Многозвенная архитектура приложений БД призвана исправить перечисленные недостатки. Итак, в рамках этой архитектуры «тонкие» клиенты представляют собой простейшие приложения, обеспечивающие лишь передачу данных, их локальное кэширование, представление средствами пользовательского интерфейса, редактирование и простейшую обработку.

Клиентские приложения обращаются не к серверу БД напрямую, а к специализированному ПО промежуточного слоя. Это может быть и одно звено (простейшая трехзвенная модель) и более сложная структура.

ПО промежуточного слоя называется сервером приложений, принимает запросы клиентов, обрабатывает их в соответствии с запрограммированными правилами бизнес-логики, при необходимости преобразует в форму, удобную для сервера БД и отправляет серверу.

Сервер БД выполняет полученные запросы и отправляет результаты серверу приложений, который адресует данные клиентам.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *


*

Реклама от гугла
Новости Белогорья Недавние статьи</div> </div><div class="art-blockcontent"> <ul> <li> <a href="http://vapankov.ru/?p=44961">Два пьяных водителя попались за рулём одной и той же «семёрки» за ночь</a> </li> <li> <a href="http://vapankov.ru/?p=44962">Под новый год россияне заняли в МФО на 12,6 % больше денег, чем осенью</a> </li> <li> <a href="http://vapankov.ru/?p=44963">Индексация выплат, загранпаспорт в МФЦ и новые кредиты – с 1 февраля в России</a> </li> <li> <a href="http://vapankov.ru/?p=44964">100-летие со дня образования Ленинского комсомола отметят в Белгороде</a> </li> <li> <a href="http://vapankov.ru/?p=44965">Артём Семейкин не прибыл на первый сбор «Энергомаша»</a> </li> </ul> </div> </div><div id="meta-2" class="art-block widget widget_meta clearfix"> <div class="art-blockheader"> <div class="t">Мета</div> </div><div class="art-blockcontent"> <ul> <li><a href="http://vapankov.ru/wp-login.php?action=register">Регистрация</a></li> <li><a href="http://vapankov.ru/wp-login.php">Войти</a></li> <li><a href="http://vapankov.ru/?feed=rss2"><abbr title="Really Simple Syndication">RSS</abbr> записей</a></li> <li><a href="http://vapankov.ru/?feed=comments-rss2"><abbr title="Really Simple Syndication">RSS</abbr> комментариев</a></li> <li><a href="https://ru.wordpress.org/" title="Сайт работает на WordPress — современной персональной платформе для публикаций.">WordPress.org</a></li> </ul> </div> </div> </div> </div> </div> </div><footer class="art-footer clearfix"><p><a href="http://vapankov.ru/?feed=rss2" class="art-rss-tag-icon" title="Сайт Василия Панкова RSS Feed" style="float: left; line-height: 0px;"></a></p> <a href="#">Link1</a> | <a href="#">Link2</a> | <a href="#">Link3</a></p> <p>Copyright © 2011 - 2018гг. All Rights Reserved.</p> <!--LiveInternet counter--><script type="text/javascript"><!-- document.write("<a href='http://www.liveinternet.ru/click' "+ "target=_blank><img src='//counter.yadro.ru/hit?t16.3;r"+ escape(document.referrer)+((typeof(screen)=="undefined")?"": ";s"+screen.width+"*"+screen.height+"*"+(screen.colorDepth? screen.colorDepth:screen.pixelDepth))+";u"+escape(document.URL)+ ";"+Math.random()+ "' alt='' title='LiveInternet: показано число просмотров за 24"+ " часа, посетителей за 24 часа и за сегодня' "+ "border='0' width='88' height='31'><\/a>") //--></script><!--/LiveInternet--> <!-- Yandex.Metrika informer --> <a href="https://metrika.yandex.ru/stat/?id=25737512&from=informer" target="_blank" rel="nofollow"><img src="//bs.yandex.ru/informer/25737512/3_1_B8BBFFFF_989BF0FF_0_pageviews" style="width:88px; height:31px; border:0;" alt="Яндекс.Метрика" title="Яндекс.Метрика: данные за сегодня (просмотры, визиты и уникальные посетители)" onclick="try{Ya.Metrika.informer({i:this,id:25737512,lang:'ru'});return false}catch(e){}"/></a> <!-- /Yandex.Metrika informer --> <!-- Yandex.Metrika counter --> <script type="text/javascript"> (function (d, w, c) { (w[c] = w[c] || []).push(function() { try { w.yaCounter25737512 = new Ya.Metrika({id:25737512, clickmap:true, trackLinks:true, accurateTrackBounce:true}); } catch(e) { } }); var n = d.getElementsByTagName("script")[0], s = d.createElement("script"), f = function () { n.parentNode.insertBefore(s, n); }; s.type = "text/javascript"; s.async = true; s.src = (d.location.protocol == "https:" ? "https:" : "http:") + "//mc.yandex.ru/metrika/watch.js"; if (w.opera == "[object Opera]") { d.addEventListener("DOMContentLoaded", f, false); } else { f(); } })(document, window, "yandex_metrika_callbacks"); </script> <noscript><div><img src="//mc.yandex.ru/watch/25737512" style="position:absolute; left:-9999px;" alt="" /></div></noscript> <!-- /Yandex.Metrika counter --></footer> </div> <p class="art-page-footer"> <span id="art-footnote-links">Designed by Василий.</span> </p> </div> <div id="wp-footer"> <script type='text/javascript' src='http://vapankov.ru/wp-content/plugins/si-captcha-for-wordpress/captcha/si_captcha.js?ver=1.0'></script> <script type="text/javascript"> //<![CDATA[ var si_captcha_styles = "\ <!-- begin SI CAPTCHA Anti-Spam - comment form style -->\ <style type='text/css'>\ div#captchaImgDiv { display:block; }\ .captchaSizeDivSmall { width:175px; height:45px; padding-top:10px; }\ .captchaSizeDivLarge { width:250px; height:60px; padding-top:10px; }\ img#si_image_com,#si_image_reg,#si_image_log,#si_image_side_login { border-style:none; margin:0; padding-right:5px; float:left; }\ .captchaImgRefresh { border-style:none; margin:0; vertical-align:bottom; }\ div#captchaInputDiv { display:block; padding-top:15px; padding-bottom:5px; }\ label#captcha_code_label { margin:0; }\ input#captcha_code { width:65px; }\ </style>\ <!-- end SI CAPTCHA Anti-Spam - comment form style -->\ "; jQuery(document).ready(function($) { $('head').append(si_captcha_styles); }); //]]> </script> <script type='text/javascript'>jQuery(document).ready(function(){ jQuery('a.colorbox').colorbox({iframe:true, width:'80%', height:'80%'});jQuery('a.rssmi_youtube').colorbox({iframe:true, innerWidth:425, innerHeight:344})});</script><!-- Scroll Triggered Boxes v2.2.1 - https://wordpress.org/plugins/scroll-triggered-boxes/--> <div class="stb-container stb-top-left-container"> <div class="scroll-triggered-box stb stb-342 stb-top-left" id="stb-342" style="display: none;"> <div class="stb-content"> <p><strong><span style="color: #ff0000;">ВНИМАНИЕ! САНКЦИИ!</span></strong></p> <p>Санкции введены ТОЛЬКО в отношении Барака Обамы! <span style="color: #ff0000;"><strong>Бараку</strong></span> <span style="color: #ff0000;"><strong>ЗАПРЕЩЕНО посещать этот сайт!!!</strong></span></p> <p><strong><span style="color: #ff0000;">ATTENTION! SANCTIONS!</span></strong></p> <p>Sanctions were imposed ONLY in respect of Barack Obama! <span style="color: #ff0000;"><strong>Barack NOT visit this site!!!</strong></span></p> <p> </p> <p><span style="color: #0000ff;">После закрытия этого окна, оно сегодня больше не появится.</span></p> <p><span style="color: #0000ff;">After closing this window, it will not show up today.</span></p> </div> <span class="stb-close">×</span> </div> </div> <div id="stb-overlay"></div><!-- / Scroll Triggered Box --><script type='text/javascript' src='http://vapankov.ru/wp-content/plugins/akismet/_inc/form.js?ver=3.1.11'></script> <link rel='stylesheet' id='wprssmi_colorbox-css' href='http://vapankov.ru/wp-content/plugins/wp-rss-multi-importer/css/colorbox.css?ver=4.5.15' type='text/css' media='all' /> <link rel='stylesheet' id='frontend-css' href='http://vapankov.ru/wp-content/plugins/wp-rss-multi-importer/css/frontend.css?ver=4.5.15' type='text/css' media='all' /> <script type='text/javascript' src='http://vapankov.ru/wp-includes/js/comment-reply.min.js?ver=4.5.15'></script> <script type='text/javascript'> /* <![CDATA[ */ var STB_Global_Options = {"testMode":""}; var STB_Box_Options = {"342":{"id":342,"title":"\u0412\u043d\u0438\u043c\u0430\u043d\u0438\u0435 ! \u0421\u0430\u043d\u043a\u0446\u0438\u0438! Attention! Sanctions!","trigger":"percentage","triggerPercentage":0,"triggerElementSelector":"","animation":"fade","cookieTime":1,"autoHide":false,"autoShow":true,"position":"top-left","minimumScreenWidth":0,"unclosable":false}}; /* ]]> */ </script> <script type='text/javascript' src='http://vapankov.ru/wp-content/plugins/scroll-triggered-boxes/assets/js/script.min.js?ver=2.2.1'></script> <script type='text/javascript' src='http://vapankov.ru/wp-includes/js/wp-embed.min.js?ver=4.5.15'></script> <script type='text/javascript' src='http://vapankov.ru/wp-content/plugins/wp-rss-multi-importer/scripts/jquery.colorbox-min.js?ver=4.5.15'></script> <script type='text/javascript' src='http://vapankov.ru/wp-content/plugins/wp-rss-multi-importer/scripts/detect-mobile.js?ver=4.5.15'></script> <script type='text/javascript' src='http://vapankov.ru/wp-content/plugins/wp-rss-multi-importer/scripts/show-excerpt.js?ver=4.5.15'></script> <!-- 47 queries. 0,375 seconds. --> </div> </body> </html>