- •Московский Авиационный Институт
- •Оглавление
- •Теоритическая часть Основные термины, используемые в пособии
- •Многопользовательские базы данных
- •Модель данных
- •Избыточность в таблицах базах данных
- •Нормализация
- •Ограничения целостности
- •Индексы
- •История выпусков sql Server
- •Редакции sql Server 2008
- •Системные требования sql server 2008
- •Установка ms sql Server 2008
- •Программное обеспечение sql Server 2008
- •Базы данных
- •Создание новой бд
- •Удаление бд
- •Создание таблиц
- •Удаление таблиц
- •Работа с таблицами
- •Типы данных
- •Создание пользовательских типов данных
- •Создание ограничений
- •Создание диаграммы бд
- •Создание представлений
- •Создание триггеров
- •Индексы
- •Безопасность sql Server
- •Создание имя входа
- •Создание пользователя базы данных
- •Настройка удаленного доступа к бд в 326 аудитории
Многопользовательские базы данных
По принципам обработки базы данных классифицируются следующим образом:
Централизованная база данных. При использовании этой технологии база данных располагается на одном компьютере, доступ к информации может осуществляться удаленно с других компьютеров сети. Централизованные базы данных с распределенным доступом являются наиболее используемыми в настоящее время. Для этой технологии возможны два способа обработки данных:
Файл-сервер. Эта архитектура предполагает назначение одного из компьютеров сети в качестве сервера, на котором будут храниться файлы базы данных. В соответствии с запросами пользователей файлы с файл-сервера передаются на компьютеры пользователей, где и осуществляется основная часть обработки данных. Центральный сервер выполняет в основном только роль хранилища файлов, не участвуя в обработке самих данных. После завершения работы пользователи копируют файлы с обработанными данными обратно на сервер, откуда их смогут взять и обработать другие пользователи. Недостатки такой организации работы очевидны. При одновременном обращении множества пользователей к одним и тем же данным производительность работы резко падает, т. к. необходимо дождаться, пока пользователь, работающий с данными, завершит свою работу. В противном случае возможно потеря изменений, сделанных одними пользователями, изменениями других пользователей.
Клиент-сервер. В данной архитектуре центральный сервер должен выполнять и основную часть обработки данных. Пользователи обращаются к центральному серверу с помощью специального языка структурированных запросов (SQL, Structured Query Language). Запросы пользователей принимаются сервером и запускают процессы обработки данных. В ответ пользователь получает уже обработанный набор данных. Между клиентом и сервером передается не весь набор данных, как это происходит в технологии файл-сервер, а только данные, которые действительно необходимы пользователю. Запрос пользователя длиной всего в несколько строк способен породить процесс обработки данных, затрагивающий множество таблиц и миллионы строк. В ответ клиент может получить лишь несколько чисел. Технология клиент-сервер позволяет избежать передачи по сети огромных объемов информации, переложив всю обработку данных на центральный сервер. Кроме того, рассматриваемый подход позволяет избежать конфликтов изменений одних и тех же данных множеством пользователей, которые характерны для технологии файл-сервер. Технология клиент-сервер реализует согласованное изменение данных множеством пользователей, обеспечивая автоматическое соблюдение целостности данных. Эти и некоторые другие преимущества сделали технологию клиент-сервер весьма популярной. К недостаткам технологии клиент-сервер можно отнести высокие требования к производительности центрального сервера. Чем больше пользователей обращаются к данным, и чем больше объем обрабатываемых данных, тем более мощным должен быть центральный сервер.
Распределенная база данных. Базы данных этого типа располагаются на нескольких компьютерах. Информация на этих компьютерах может пересекаться и даже дублироваться. Для управления подобными базами данных предназначена система управления распределенными базами данных (СУРБД). Работа с распределенной базой данных может быть прозрачна для пользователей. Система скрывает от клиентов обращения к данным, расположенным на других компьютерах. Для пользователя все выглядит так, как будто вся информация находится на одном сервере. Распределенные базы данных не получили большого распространения.
В настоящее время централизованные базы данных с распределенным доступом являются наиболее используемыми. Из двух способов обработки данных централизованными базами данных наиболее производительным являются клиент-серверные технологии по сравнению с файл-серверными. Таким образом, по принципам обработки базы данных для разработки сложных программных комплексов целесообразно выбирать клиент-серверные технологии централизованных баз данных.
Технология клиент-сервер означает такой способ взаимодействия программных компонентов, при котором они образуют единую систему. Клиент принимает от пользователя запрос, проверяет его синтаксис и генерирует SQL-запрос к серверу на предоставление тех или иных данных. Этот запрос передается на сервер по компьютерной сети. Сервер принимает и обрабатывает запрос к базе данных, затем в зависимости от типа запроса либо передает полученные в результате запроса данные обратно клиенту, либо изменяет содержимое базы данных. Клиент принимает переданные сервером данные, модифицирует их и представляет пользователю. Обработка сервером запроса включает в себя проверку полномочий клиента, обеспечение требований целостности, собственно выполнение запроса и передачу клиенту необходимых результатов. При этом сервер занимается такими проблемами, как поддержка параллельности работы многих клиентов, которая включает в себя, в первую очередь, согласование данных, одновременно предоставляемых и изменяемых разными клиентами. Подобная архитектура обладает следующими преимуществами:
Обеспечивается более широкий доступ к существующим базам данных.
Повышается общая производительность системы. Поскольку клиенты и сервер находятся на разных компьютерах, их процессы способны выполнять приложения параллельно.
Сокращается нагрузка на компьютерную сеть - в ответ на запрос клиента сервер возвращает ему готовые результаты запроса, а не все данные, необходимые для их получения.
Появляется возможность использования специализированного аппаратного обеспечения для сервера, которое может быть сконструировано именно для работы на сервере баз данных. Это очень существенный аспект повышения общей производительности работы системы.
Повышается уровень непротиворечивости данных, поскольку все проверки выполняются в одном месте.
Системы этого типа имеют встроенный механизм работы с запросами, в том числе и их отката. Он позволяет получить «слепок» базы данных на момент начала выполнения запроса на изменение данных без блокировки базы данных. И слепков таких может быть много: для каждой рабочей станции свой. В случае проблемы с выполнением (например «зависания», сбоя компьютера), выполнение запроса может быть просто отменено, а база данных будет восстановлена в том виде, в каком она была до начала выполнения. Откат осуществляется либо по запросу, либо автоматически. Таким образом, выход из строя рабочей станции не столь опасен для целостности базы данных. Кроме того, клиент-серверная система ведет так называемый журнал транзакций.
Существует множество СУБД. Эти программы обладают различными возможностями и ценой. Наиболее популярные современные базы данных клиент-сервер это:
Oracle
MySQL
Microsoft SQL Server
