Многопользовательские базы данных
Поможем в ✍️ написании учебной работы
Поможем с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой

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

Рассмотрим составную часть этого определения – «совокупность данных … совместно используемых широким кругом пользователей, динамически из­меняющаяся в процессе своего функционирования», т.е. информа­ция из базы данных должна быть одновременно и без задержки предоставле­на широкому кругу лиц в необходимой для них форме для анализа или моди­фикации таким образом, чтобы по возможности они не ощущали присутствия друг друга.

По принципам обработки базы данных классифицируются следующим образом[2]:

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

Файл-сервер. Эта архитектура централизованных баз данных с сетевым доступом предполагает назначение одного из компьютеров сети в качестве выделенного сервера, на котором будут храниться файлы централизован­ной базы данных. В соответствии с запросами пользователей файлы с файл-сервера передаются на рабочие станции пользователей, где и осуще­ствляется основная часть обработки данных. Центральный сервер выпол­няет в основном только роль хранилища файлов, не участвуя в обработке самих данных. После завершения работы пользователи копируют файлы с обработанными данными обратно на сервер, откуда их смогут взять и об­работать другие пользователи. На основе скопированных файлов централи­зованной базы данных пользователи могут создавать на своих рабочих стан­циях локальные базы данных. Недостатки такой организации работы оче­видны. При одновременном обращении множества пользователей к одним и тем же данным производительность работы резко падает, т. к. необходимо дождаться, пока пользователь, работающий с данными, завершит свою ра­боту. В противном случае возможно затирание исправлений, сделанных од­ними пользователями, изменениями других пользователей.

Клиент-сервер. В основе этой концепции лежит идея о том, что помимо хранения файлов базы данных, центральный сервер должен выполнять и основную часть обработки данных. Пользователи обращаются к централь­ному серверу с помощью специального языка структурированных запросов (SQL, Structured Query Language), на котором описывается список задач, выполняемых сервером. Запросы пользователей принимаются сервером и порождают на нем процессы обработки данных. В ответ пользователь по­лучает уже обработанный набор данных. Между клиентом и сервером пе­редается не весь набор данных, как это происходит в технологии файл-сервер, а только данные, которые действительно необходимы пользовате­лю. Запрос пользователя длиной всего в несколько строк способен поро­дить процесс обработки данных, затрагивающий множество таблиц и миллионы строк. В ответ клиент может получить лишь несколько чисел. Технология клиент-сервер позволяет избежать передачи по сети огромных объемов информации, переложив всю обработку данных на центральный сервер. Кроме того, рассматриваемый подход позволяет избежать кон­фликтов изменений одних и тех же данных множеством пользователей, которые характерны для технологии файл-сервер. Технология клиент-сервер реализует согласованное изменение данных множеством пользовате­лей, обеспечивая автоматическое соблюдение целостности данных. Эти и некоторые другие преимущества сделали технологию клиент-сервер весьма популярной. К недостаткам технологии клиент-сервер можно отнести вы­сокие требования к производительности центрального сервера. Чем больше пользователей обращаются к данным, и чем больше объем обрабатывае­мых данных, тем более мощным должен быть центральный сервер.

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

В настоящее время централизованные базы данных с распределенным доступом являются наиболее используемыми. Из двух способов обработки данных централизованными базами данных наиболее производительным являются клиент-серверные технологии по сравнению с файл-серверными.

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

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

В контексте базы данных клиент управляет пользовательским интерфейсом и логикой приложения, действуя как интеллектуальная рабочая станция, на ко­торой выполняются приложения баз данных. Клиент принимает от пользова­теля запрос, проверяет его синтаксис и генерирует SQL-запрос к серверу на предоставление тех или иных данных. Этот запрос передается на сервер по компьютерной сети. Сервер принимает и обрабатывает запрос к базе данных, затем в зависимости от типа запроса либо передает полученные данные об­ратно клиенту, либо выполняет модификацию содержимого базы данных. Клиент принимает переданные сервером данные, форматирует их и пред­ставляет пользователю.

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

· обеспечивается более широкий доступ к существующим базам данных;

· повышается общая производительность системы. Поскольку клиенты и сервер находятся на разных компьютерах, их процессы способны выпол­нять приложения параллельно. При этом настройка производительности сервера упрощается, если на компьютере, выделенном под сервер, выпол­няется только работа с базой данных;

· сокращается нагрузка на компьютерную сеть. Это происходит прежде все­го за счет того, что в ответ на запрос клиента сервер возвращает ему гото­вые результаты запроса, а не все данные, необходимые для их получения;

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

· появляется возможность использования специализированного аппаратного обеспечения для сервера, которое может быть сконструировано именно для работы на сервере баз данных. Это очень существенный аспект повы­шения общей производительности работы системы;

· повышается уровень непротиворечивости данных, поскольку все проверки выполняются в одном месте.

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

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

· Oracle;

· MySQL;

· Microsoft SQL Server 2012 with Tools.

Рассмотрим преимущества и недостатки каждой из них.

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

       MySQL – надежная, устойчивая и простая в администрировании СУБД. Низкая стоимость и свободное распространение позволяет ипользовать MySQL в различных проектах. Однако главным преимуществом MySQL является возможность ее использования вместе с PHP по нескольким причинам. MySQL обладает очень широкими возможностями. Она обладает большинством возможностей, предоставляемых в дорогих и мощных пакетах для работы с БД. БД MySQL используют стандартную форму широко известного языка SQL. MySQL выпускается с открытым кодом и распространяется бесплатно, работает с большим количеством операционных систем и может использоваться со многими языками программирования. Она работает очень быстро даже с большими наборами данных. Кроме того, в PHP встроено множество функций для поддержки БД MySQL. Таким образом, выбор БД MySQL наиболее целесообразен при использовании ее совместно с PHP.

      Microsoft SQL Server with Tools является бесплатно распространяемой версией SQL Server.

Microsoft SQL Server 2012 with Tools – это мощная и надежная система управления данными, обеспечивающая множество функций, защиту данных и высокую производительность для внедренных приложений-клиентов, «легких» веб-приложений и локальных хранилищ данных. SQL Server 2012 with Tools предназначен для упрощенного развертывания и быстрого создания прототипов; его можно получить бесплатно и свободно распространять вместе с приложениями. Он разработан таким образом, чтобы полностью интегрироваться с другими продуктами, входящими в серверную инфраструктуру. Данная версия имеет некоторые технические ограничения, указанные ниже (речь идёт о версии MS SQL 2012 with Tools). Такие ограничения делают её непригодной для развертывания больших баз данных, но она вполне годится для ведения продуктов класса "1С-предприятие" и серьёзных программных комплексов в масштабах небольшой компании.

Microsoft SQL Server 2012 Express with Tools — это бесплатная, простая в использовании версия платформы данных SQL Server Express, включающей графическое средство управления — среду SQL Server Management Studio Express. SQL Server 2012 Express предоставляет обширные функции, обеспечивает защиту данных и высокую производительность. Он идеально подходит для малых        серверных приложений и локальных хранилищ данных. Экземпляр SQL Server 2012 Express with Tools можно бесплатно загрузить, бесплатно развернуть и бесплатно распространить в виде внедренной части приложения. Он позволяет быстро и легко разрабатывать и контролировать управляемые данными приложения.

Создание баз данных

После установки SQL Server запустит все необходимые службы автоматически. Поэтому вручную запускать ничего не надо.

Для запуска Management Studio перейдите в меню ПУСК – все программы – Microsoft SQL Server 2012 - Среда Microsoft SQL Management Studio .

Для каждой логической базы данных SQL Server создает два физических файла: один для объектов, а другой для журна­ла транзакций (операций).

Примечание. По умолчанию SQL Server подразумевает одинако­вое местонахождение для файла базы данных и журнала транзакций. В рабочих системах вам следует всегда хранить журнал транзакций в другом месте, желательно, на другой машине. Это позволит восстановить базу данных в случае отказа аппаратных средств, в результате которого чтение диска станет невозможным. Рекомендация для сохранения в целостности ваших данных, каждый раз, завершая работу со своей базой данных не поленитесь скопировать файлы журнала и метаданных на съемный носитель(например флешка - USB Flash Drive). Это убережет Вас от многочасового труда по восстановлению БД, в случае аппаратного сбоя.

Дата: 2019-11-01, просмотров: 162.