База данных в самом общем смысле – это унифицированная совокупность данных, совместно используемых широким кругом пользователей, динамически изменяющаяся в процессе своего функционирования. Если унифицированным форматом представления данных являются таблицы, то речь идет о реляционной базе данных.
Рассмотрим составную часть этого определения – «совокупность данных … совместно используемых широким кругом пользователей, динамически изменяющаяся в процессе своего функционирования», т.е. информация из базы данных должна быть одновременно и без задержки предоставлена широкому кругу лиц в необходимой для них форме для анализа или модификации таким образом, чтобы по возможности они не ощущали присутствия друг друга.
По принципам обработки базы данных классифицируются следующим образом[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, просмотров: 193.