Теоретические сведения
Эффективная коллективная работа с информацией невозможна без использования общей БД, устанавливаемой в компьютерной сети на специально выделенном компьютере (сервере), к которому имеют одновременный доступ компьютеры пользователей (клиенты). На сервере устанавливается и система управления базами данных (СУБД), контролирующая доступ клиентов к БД и называемая SQL-сервером, если языком взаимодействия с СУБД является язык SQL.
Для информационных систем с клиент-серверной архитектурой характерна максимальная разгрузка клиента от вычислительной работы, которая переносится на сервер, и существенное улучшение защищенности данных от несанкционированного доступа или ошибочных изменений. Для реализации клиент-серверной архитектуры применяются так называемые промышленные SQL-серверы, например, Oracle, Microsoft SQL Server, Informix, Sybase SQL Server, DB2, InterBase.
Microsoft SQL Server (MS SQL Server) — одна из наиболее мощных СУБД, имеющая клиент-серверную архитектуру. В своем составе MS SQL Server помимо средств, перечисленных в лабораторной работе № 5, имеет развитую систему транзакций.
MS SQL Server обеспечивает хранение и обработку больших объемов информации при одновременной работе с БД множества клиентских приложений. Чтобы максимально разгрузить клиентские приложения от вычислительной работы и гарантировать высокую защищенность и целостность информации, MS SQL Server реализует многие возможности, предусмотренные в языке SQL. Так, для задания ограничений целостности можно определить:
1) связи между таблицами БД путем указания первичных ключей (PRIMARY KEY) у главных таблиц и внешних ключей (FOREIGN KEY) у подчиненных таблиц;
2) ограничения на значения, хранящиеся в отдельных столбцах (CHECK, CONSTRAINT);
3) триггеры (TRIGGER) — подпрограммы, автоматически выполняемые SQL-сервером до и/или после изменения в таблице БД.
Для ускорения взаимодействия клиентских приложений с удаленной БД можно использовать хранимые процедуры (STORED PROCEDURE), представляющие собой подпрограммы, способные посылать запросы к БД и выполнять условные ветвления и циклическую обработку. Хранимые процедуры пишутся с использованием специальных языковых конструкций и содержат часто повторяющиеся последовательности запросов к БД. Текст процедур размещается на сервере в откомпилированном виде. При использовании хранимых процедур:
1) не требуется синтаксическая проверка каждого запроса и его компиляция перед выполнением, что ускоряет выполнение запроса;
2) из клиентского приложения исключается реализация запросов, находящихся в теле хранимых процедур;
3) ускоряется обработка транзакций, т.е. нескольких последовательных логически связанных операторов языка SQL, которые рассматриваются как единое целое, так как вместо длинного SQL-запроса по компьютерной сети передается короткое обращение к хранимой процедуре. Транзакция переводит базу данных из одного целостного состояния в другое.
Пользователь получает доступ к БД с помощью разработанных программистами клиентских приложений или специальных программных средств (утилит), предназначенных для взаимодействия с MS SQL Server, например, Microsoft SQL Server Management Studio. Для работы с базами данных в системе Microsoft Visual Studio 2005 имеется компонент Server Explorer, который также обеспечивает доступ к MS SQL Server. Объекты базы данных размещаются в файле с расширением .mdf.
Существует версия MS SQL Server Express, инсталлируемая вместе с Microsoft Visual Studio 2005 и реализующая функции СУБД для локального однопользовательского применения. Эта версия может использоваться при разработке клиент-серверных приложений в качестве модели реального SQL-сервера или для переноса локальной БД на SQL-сервер. Кроме того, эта версия может применяться в качестве процессора БД в обычных локальных приложениях. Его применение позволяет программисту повысить надежность разрабатываемого приложения и избежать возможной потери данных при тестировании неотлаженных приложений на “производственной” серверной БД.
Если БД, для работы с которой предназначено разрабатываемое приложение, уже существует, то локальный сервер MS SQL Server Express может быть использован в качестве проверочной модели перед последующим подключением приложения к удаленному SQL-серверу.
Если реальная БД еще не существует, то локальный сервер MS SQL Server Express может использоваться для создания прототипа данных, на которых будет проверяться работоспособность приложения.
Если приложение разрабатывается для уже существующей БД, функционирующей на удаленном SQL-сервере, то перед проверкой работоспособности приложения на реальных данных локальный сервер MS SQL Server Express может использоваться для создания резервных копий данных или для отладки приложения на представительной выборке информации из существующей БД.
При переносе локальной БД на клиент-серверную платформу локальный сервер MS SQL Server Express используется в качестве промежуточного сервера, на котором проверяется структура новой БД, предназначенной для установки на сервере. После успешной проверки база данных переносится на SQL-сервер.
Если на компьютере с установленным локальным сервером MS SQL Server Express не предусмотрен его автоматический запуск при загрузке операционной системы Windows, то запуск сервера возможен с помощью утилиты SQL Server Configuration Manager, которая вызывается из стартового меню Windows командой Программы | Microsoft SQL Server 2005 | Configuration Tools | SQL Server Configuration Manager.
Использование компонента Server Explorer
системы Microsoft Visual Studio 2005
для работы с СУБД MS SQL Server
В системе Microsoft Visual Studio 2005 компонент Server Explorer представлен одноименным окном, которое активизируется командой главного меню View | Other Windows | Server Explorer или комбинацией клавиш Ctrl+Alt+S.
В окне Server Explorer (рис.1) имеются дерево соединений (Data Connections) и серверов (Servers) и панель с кнопками команд Refresh (Обновить отображаемую информацию), Stop Refresh (Остановить обновление), Connect to Database (Подключиться к базе данных), Connect to Server (Подключиться к новому серверу).
Другие команды находятся в контекстных меню, связанных с элементами дерева соединений и появляющихся при нажатии правой кнопки мыши на этих элементах. Используя команды контекстного меню, можно создавать новую БД, отображать структуру (определение, definition) или содержимое выбранной таблицы, формировать запросы к БД, вносить изменения в состав БД и т.д.
Подключение к базе данных
База данных может находиться в файле, размещенном на сервере или на любом компьютере. В первом случае БД идентифицируется сервером по ее имени, а во втором случае необходимо указывать местонахождение файла.
Подключение к БД, размещенной на сервере, происходит после выполнения следующих действий.
1. В окне Server Explorer нажать кнопку Connect to Database.
2. В окне Add Connection указать источник данных нажатием кнопки Change… (рис.2). Из списка источников данных выбрать Microsoft SQL Server.
3. Выбрать или набрать имя сервера .\SQLEXPRESS
4. Выбрать режим Use Windows Authentification для подключения к БД.
5. Выбрать имя БД из списка.
6. Проверить подключение к БД нажатием кнопки Test Connection.
7. Нажать ОК.
Элемент, соответствующий базе данных, с которой установлено соединение, появляется в дереве соединений (см. рис.1).
Чтобы подключиться к БД, размещенной отдельно от сервера, нужно выполнить следующие действия.
1. В окне Server Explorer нажать кнопку Connect to Database.
2. В окне Add Connection указать источник данных нажатием кнопки Change… Из списка выбрать Microsoft SQL Server Database File.
3. Указать местоположение файла с БД нажатием кнопки Browse… (рис.3).
4. Выбрать режим Use Windows Authentification для подключения к БД.
5. Проверить подключение к БД нажатием кнопки Test Connection.
6. Нажать ОК.
После подключения к БД можно получить доступ к ее таблицам и другим объектам БД, а также ознакомиться с диаграммой БД, на которой изображены таблицы и связи между ними.
Группы объектов, входящих в БД, отображаются в дереве соединений после щелчка мышью по квадрату, расположенному слева от пиктограммы БД (рис.4). Объекты, принадлежащие каждой группе, отображаются