243 86 538KB
Russian Pages [64]
Министерство образования Российской Федерации Южно-Уральский государственный университет Кафедра “Электронные вычислительные машины”
681.3.06(07) Я77
Ярош Е.С.
РАБОТА В СРЕДЕ MS SQL SERVER 2005 Учебное пособие к лабораторным работам
Челябинск Издательство ЮУрГУ 2009
УДК 681.3.06(07) Я77
Одобрено учебно-методической комиссией приборостроительного факультета
Рецензенты: М.Ю. Катаргин, Л. А. Полякова
Я77
Ярош Е.С. Работа в среде MS SQL Server 2005: Учебное пособие к лабораторным работам. – Челябинск: Изд. ЮУрГУ, 2009. – 64 с ISBN 5-696-00000-0 Пособие предназначено, в первую очередь, для студентов специальности 230101 − "Вычислительные машины, комплексы, системы и сети". Оно поддерживает курс "Базы данных", изучаемый в восьмом семестре, в части рассмотрения работы СУБД с архитектурой клиент-сервер. Материал может быть полезен также специалистам других направлений при необходимости освоения программного продукта Microsoft SQL Server 2005.
УДК 681.3.06(07) ISBN 5-696-00000-0
© Издательство ЮУрГУ, 2009
2
ВВЕДЕНИЕ SQL Server фирмы Microsoft (MS SQL Server) является одной из наиболее известных систем управления базами данных (СУБД). Наряду с Oracle и DB2 он занимает лидирующее положение на рынке СУБД. Традиционный для программных продуктов фирмы Microsoft дружественный интерфейс, простота и удобство обслуживания успешно сочетаются в MS SQL Server с высокой производительностью, наличием всех возможностей современных СУБД. Привлекательным фактором является также невысокая стоимость MS SQL Server по сравнению с конкурирующими СУБД. Оптимальное сочетание цены и качества делает этот программный продукт очень популярным. Настоящее пособие предназначено для практического освоения базовых приемов работы с MS SQL Server 2005. Оно состоит из тематических разделов, позволяющих последовательно ознакомиться с основными задачами, возникающими в процессе эксплуатации этой системы. Первый раздел является ознакомительным. Он дает краткое представление о MS SQL Server в целом. Второй раздел посвящен созданию базы данных. Здесь рассматриваются общие вопросы организации и хранения данных в MS SQL Server, возможности пользователя по проектированию собственных информационных структур. Третий раздел рассматривает вопросы создания представлений и манипулирования данными. Четвертый раздел знакомит с программированием сервера, созданием хранимых процедур, триггеров базы данных и пользовательских функций. Пятый раздел посвящен системе безопасности MS SQL Server, средствам ограничения и разграничения доступа к данным различных категорий пользователей. Шестой раздел рассматривает важнейшие вопросы настройки и администрирования сервера, оптимизации производительности, изоляции и блокировки, позволяющие многим пользователям одновременно работать с базой данных без отрицательного взаимовлияния, мониторинг и аудит текущей работы. Седьмой раздел позволяет ознакомиться с организацией двухстороннего обмена данными между MS SQL Server и другими СУБД. Известно, что успешное освоение любого программного продукта возможно только при непосредственной работе за компьютером. Однако нажатие на клавиши без понимания сути происходящих в системе процессов мало продуктивно. Поэтому для каждой из рассматриваемых задач сначала излагаются основополагающие принципы, затем следует описание приемов работы, после чего дается практическое задание. В каждом разделе рассматривается несколько логически связанных задач. Разделы и задачи выстроены в последовательности, которая наиболее часто встречается на практике. Такая последовательность обеспечивает также наилучшее усвоение материала. Поэтому рекомендуется выполнять все задания без нарушения порядка их следования.
3
1. ЗНАКОМСТВО С MS SQL SERVER MS SQL Server работает на Windows-платформе фирмы Microsoft. В настоящее время базовой является версия MS SQL Server 2005. Этот продукт выпускается в следующих редакциях: • Enterprise Edition (32-разрядная и 64-разрядная) – самая полная редакция, СУБД масштаба предприятия, позволяющая создавать крупные информационно-аналитические системы, работающие на отказоустойчивых кластерах. Количество процессоров не ограничено, размер оперативной памяти лимитируется операционной системой; • Standard Edition (32-разрядная и 64-разрядная) – СУБД для среднего и малого бизнеса, поддерживает работу с количеством процессоров до 4 и объемом оперативной памяти, ограниченным возможностями операционной системы; • Workgroup Edition (32-разрядная) – СУБД масштаба рабочих групп, соответствующая потребностям небольших организаций, легко обновляется до стандартного и корпоративного выпуска. Поддерживает работу с количеством процессоров до 2 и объемом оперативной памяти до 3 Гб; • Developer Edition (32-разрядная и 64-разрядная) – вариант поставки, предназначенный для разработчиков приложений на основе MS SQL Server. Он включает все функции Enterprise Edition, но по условиям лицензионного соглашения может использоваться исключительно в целях разработки и тестирования; коммерческое использование запрещено; • Express Edition (32-разрядная) – бесплатная СУБД, может передаваться (в соответствии с соглашением) третьим лицам. Предназначена для малых производителей программного обеспечения, пользователей серверов низшего уровня, непрофессиональных разработчиков, создающих веб-приложения, и любителей, создающих клиентские приложения. Число процессоров – 1, объем оперативной памяти до 1 Гб, размер базы данных – до 4 Гб. Как и многие серверные продукты, работающие под управлением системы Windows, MS SQL Server реализован в виде набора служб операционной системы, каждая из которых запускается самостоятельно и отвечает за определенный круг задач. Основные компоненты сервера: • SQL Server Database Engine – основная служба для хранения, обработки и обеспечения сохранности данных, репликации, полнотекстового поиска и управления реляционными и XML-данными. Это ядро системы, выполняющее все основные операции: регистрация пользователей и контроль их доступа к ресурсам, установление соединения, обслуживание обращений к данным, контроль использования системных ресурсов и др. Все остальные службы можно рассматривать как расширения службы SQL Server Database Engine, добавляющие гибкость и функциональность. Служба SQL Server Database Engine всегда запускается первой;
4
• Analysis Services – набор служб для создания и управления приложениями интерактивной аналитической обработки (OLAP) и приложениями интеллектуального анализа данных; • Reporting Services – набор служб, включающий серверные и клиентские компоненты для создания отчетов в табличной, матричной, графической и свободной форме, управления ими и их развертывания. Службы Reporting Services также представляют собой расширяемую платформу, которую можно использовать, чтобы разрабатывать приложения отчетов. Для установки служб Reporting Services требуются службы IIS версии 5.0 или выше, для конструктора отчетов служб Reporting Services требуется Internet Explorer версии 6.0 с пакетом обновления SP1; • Notification Services – платформа для разработки и развертывания приложений, посылающих персонифицированные, актуальные сведения подписчикам на различных устройствах; • Integration Services – набор графических средств и программируемых объектов для перемещения, копирования и преобразования данных. Поставляются также клиентские компоненты, устанавливающие связи между клиентами и серверами, и сетевые библиотеки для DB-library, ODBC и OLE DB. Продукты от Microsoft всегда славились удобными и мощными средствами управления. В MS SQL Server к ним относятся: • SQL Server Management Studio – интегрированная среда для доступа ко всем компонентам SQL Server, управления ими, их настройки, разработки и администрирования. SQL Server Management Studio объединяет возможности программ Enterprise Manager (средство администрирования сервера), Query Analyzer (ввод и выполнение SQL-утверждений, показ плана выполнения запроса, настройка и исследование ряда характеристик запроса) и Service Manager (показ состояния сервера, управление сервером), входивших в состав прежних выпусков SQL Server. Единая среда обеспечивает доступ к SQL Server разработчикам и администраторам с любым уровнем подготовки. Для установки SQL Server Management Studio требуется Internet Explorer версии 6.0 с пакетом обновления SP1; • Диспетчер конфигурации SQL Server – обеспечивает базовые возможности управления конфигурациями для служб, серверных протоколов, клиентских протоколов и псевдонимов клиентов SQL Server; • SQL Server Profiler – обеспечивает графический интерфейс пользователя для контроля над экземпляром компонента Database Engine или экземпляром служб Analysis Services; • Помощник по настройке ядра СУБД – помогает создавать оптимальные наборы индексов, индексированных представлений и секций. Средство разработки Business Intelligence Development Studio представляет собой интегрированную среду разработки для решений служб Analysis Services, Reporting Services и Integration Services. Для установки Business Intelligence
5
Development Studio требуется Internet Explorer версии 6.0 с пакетом обновления SP1. В комплект поставки входит электронная документация и образцы кода и приложений для компонента Database Engine и служб Analysis Services, Reporting Services и Integration Services. Запуск сервера можно выполнить: 1. Из Sql Server Management Studio. При вызове этой среды первым появляется окно, в котором выбирается нужный сервер и его компонент; 2. Из командной строки (каталог MSSQL.1\BINN) sqlservr – d :\\DATA\master.mdb, где – d – ключ, определяющий путь (с указанием устройства : ) к главной базе master.mdb. Можно задать и другие ключи, создать ярлык для запуска сервера. 2. РАБОТА № 1. БАЗЫ ДАННЫХ И ЖУРНАЛЫ ТРАНЗАКЦИЙ База данных MS SQL Server состоит из нескольких файлов: • *.mdf – основной файл базы данных, для каждой базы может быть только один (сервером поддерживается до 32767 баз данных); • *.ndf – дополнительные файлы базы данных, не обязательны (сервером поддерживается до 32767 файлов); • *.ldf – файл журнала транзакций. 2.1. Создание базы данных База данных может создаваться из среды Management Studio или командой CREATE DATABASE … языка Transact SQL. Наиболее удобен первый способ. 2.1.1. Создание базы данных из среды Management Studio 1. Выбрать сервер. 2. Активизировать папку Базы данных (Databases) и выбрать в контекстном меню операцию создания. 3. Задать имя базы данных, имена и местоположение файлов базы данных. С именем первого файла данных будет связано расширение .mdf, с именами последующих файлов данных – .ndf, все файлы журнала транзакций получат расширение .ldf. 4. Задать параметры приращения дискового пространства базы данных. 2.1.2. Свойства базы данных Раздел Файлы аналогичен режиму создания базы данных.
6
Раздел Файловые группы позволяет создавать имена файловых групп, к которым можно отнести один или несколько файлов базы данных или журнала транзакций. Если файловая группа не пуста, она может быть переведена в режим Read-Only или сделана доступной по умолчанию. В файловой группе по умолчанию размещаются все данные, для которых не указана файловая группа. Раздел Параметры позволяет указать режимы работы и параметры, используемые по умолчанию. Модель восстановления (Recovery model) управляет регистрацией транзакций и созданием резервных копий и, следовательно, определяет возможности восстановления при авариях. Простая модель (Simple) регистрирует минимум данных о большинстве транзакций и выполняет усечение журнала транзакций после каждой контрольной точки. Поэтому при восстановлении можно использовать только резервную копию данных. Резервное копирование и восстановление журнала транзакций не поддерживается. При полной модели (Full) в журнале транзакций регистрируются все операции, усечение журнала транзакций не выполняется. Это позволяет восстановить базу на момент, непосредственно предшествующий сбою. Модель с неполным протоколированием (Bulk-Logged) предусматривает минимальную регистрацию массовых операций, например, работу с большими блоками данных типа Text и другими объемными объектами с помощью команд Select into / bulk copy и т.д. Остальные транзакции протоколируются полностью. Если в резервной копии журнала содержится какая-либо массовая операция, то база данных может быть восстановлена только до состояния, соответствующего концу резервного файла журнала, а не к определенному моменту времени и не к помеченной транзакции внутри резервной копии журнала. Эта модель восстановления используется для больших массовых операций. Автоматическое закрытие (AUTO_CLOSE) базы данных с освобождением используемых ресурсов происходит по завершению работы последнего пользователя. База данных автоматически открывается снова, когда пользователь пытается подключиться к ней. При отказе от автоматизации база данных остается открытой и после отключения последнего пользователя. Автоматическое создание статистики, автоматическое обновление статистики (АUTO_CREATE_STATISTICS, AUTO_UPDATE_STATISTICS) означает, что любая статистика, требуемая для оптимизации запроса, при ее отсутствии автоматически строится и в ходе работы автоматически обновляется. При отказе от автоматизации статистику можно создавать/обновлять вручную. Автоматическое сжатие (AUTO_SHRINK) файлов данных выполняется во время периодических проверок на неиспользуемое пространство. Файлы журнала транзакций сжимаются только в том случае, если выбрана простая модель восстановления базы данных или была создана резервная копия журнала. При отключении параметра файлы баз данных во время периодических проверок на неиспользуемое пространство не будут сжиматься автоматически. Проверка страниц используется для обнаружения незавершенных транзакций ввода-вывода, вызванных ошибками ввода-вывода диска, и уведомления о таких
7
транзакциях. Возможные значения: None (отключение), TornPageDetection (обнаружение “оторванных”, т.е. не полностью записанных страниц базы данных) и Checksum (проверка с помощью контрольного суммирования). Параметры курсоров настраивают поведение курсоров. Указывается, будет ли курсор закрываться после фиксации транзакции, открывшей этот курсор. Если значение равно True, закрываются все курсоры, открытые при фиксации или откате транзакции. Если значение равно False, при фиксации транзакции курсоры остаются открытыми, при откате закрываются все курсоры, за исключением определенных как INSENSITIVE или STATIC. По умолчанию курсоры объявляются как GLOBAL. Можно изменить эту установку на LOCAL. Автоокругление чисел задает способ обработки ошибок округления базой данных. Если значение равно True, формируется ошибка, когда в выражении происходит потеря точности. Если значение равно False, потери точности не приводят к формированию сообщений об ошибках, а результат округляется до степени точности столбца или переменной, в которых сохраняется результат. ANSI NULL по умолчанию задает поведение операторов сравнения Equals (=) и Not Equal to () при их использовании со значениями NULL. Если значение равно True, всем сравнениям со значениями NULL присваивается значение UNKNOWN. Если значение равно False, сравнения значений, отличных от Юникода, со значениями NULL получают значение True, если оба они равны NULL. Чтобы сценарий работал правильно вне зависимости от настроек базы данных ANSI NULLS или использования директивы SET ANSI_NULLS, следует использовать IS NULL и IS NOT NULL для сравнений, операнды которых могут содержать значения NULL. Включено заполнение ANSI контролирует способ хранения в столбце значений короче, чем определенный размер столбца, и способ хранения в столбце значений, имеющих замыкающие пробелы, в данных char, varchar, binary и varbinary. При включенной установке конечные пробелы в символьных полях и конечные нули в двоичных полях не усекаются. Включены предупреждения ANSI задает поведение в соответствии со стандартом SQL-92 для некоторых состояний ошибки. Если значение равно True, формируется предупреждающее сообщение, если в статистических функциях (таких, как SUM, AVG, MAX, MIN, STDEV, STDEVP, VAR, VARP или COUNT) появляются значения NULL. Если значение равно False, предупреждающее сообщение не выдается. Включено прерывание при делении на ноль разрешает аварийное прерывание арифметических действий. Если значение равно True, ошибка переполнения или деления на ноль приводит к прерыванию выполнения запроса или пакета. Если произошла ошибка в транзакции, для этой транзакции выполняется откат. Если значение равно False, выводится предупреждающее сообщение, но запрос, пакет или транзакция продолжают выполняться, как если бы ошибки не произошло. Сцепление со значением NULL дает NULL задает способ конкатенации значений NULL. Если значение свойства равно True, строка + значение NULL возвращает NULL. Если значение равно False, результатом является строка.
8
Включены заключенные в кавычки идентификаторы регулирует использование двойных кавычек в идентификаторах. При включенной опции двойные кавычки используются для идентификаторов (имена таблиц, полей и др.) и аналогичны квадратным скобкам. Это соответствует правилам ANSI. Можно также использовать ключевые слова SQL Server как идентификаторы (имена объектов или переменных), если они заключаются в кавычки. При выключенной опции двойные кавычки аналогичны одинарным и используются в символьных строках. Включены рекурсивные триггеры позволяет запускаться триггерам другими триггерами. Если значение равно True, рекурсивный запуск триггеров разрешен. Если значение равно False, запрещается только прямая рекурсия. Чтобы отключить косвенную рекурсию, параметру сервера вложенные триггеры с помощью процедуры sp_configure надо присвоить значение 0. Состояние задает режим использования базы данных: только для чтения (Read only) − немодифицируемая база данных, ограничение доступа (Restrict access) − средство ограничения доступа к базе данных. Значение Multiple соответствует обычной многопользовательской работе, Single – однопользовательский режим, Restricted позволяет работать с базой только пользователям с полномочиями владельца базы (dbo – data base owner), создателя базы (dbcreator) или системного администратора (sysadmin). Здесь же показывается текущее состояние базы данных: нормальная работа, отключение, один из видов восстановления и т.д. Остальные разделы свойств посвящены различным аспектам обеспечения безопасности (см. работу № 4). Задание. 1. Создать базу данных. 2. Изучить ее свойства. 3. Используя справочную систему, ознакомиться с оператором CREATE DATABASE …, сопоставить его параметры и экранные формы Enterprise Manager для создания базы данных. 4. Используя справочную систему, ознакомиться с операторами удаления базы данных DROP DATABASE и корректировки базы данных ALTER DATABASE. 2.2. Типы полей 2.2.1. Базовые типы Числовые типы. Целые: integer − 4 б, smallint − 2 б, tinyint − 1 б, bigint −8 б. С плавающей точкой: real − 4 б, float (double precision) − 8 б. С фиксированной точкой: decimal (numeric) − от 5 до 17 б, decimal[(p[,s])] Символьные типы. Фиксированной длины: char [(n)], n , если параметр влияет на выполнение такого запроса.
48
6.1.4. Проверка целостности базы данных Проверка целостности базы данных выполняется с помощью утилиты DBCC − DataBase Consistency Checker. Эта утилита дает наиболее достоверные данные при работе в монопольном режиме или при очень малой активности. Перевод в монопольный режим выполняется системной процедурой sp_dboption. DBCC используется для сбора подробной информации о состоянии объектов баз данных. Она имеет несколько десятков режимов работы, позволяющих исследовать различные аспекты эксплуатации баз данных. Задание. 1. Из SQL Server Management Studio в режиме создания запроса выполнить команду dbcc checkdb(' < имя_ базы > ') Эта команда проверяет целостность выделения пространства, структурную и логическую целостность всех объектов в указанной базе данных. Например, для таблиц проверяются связанные с ними страницы данных, индексы, указатели. 2. С помощью справки ознакомиться с остальными вариантами инструкции dbcc. 6.2. Оптимизация производительности В задаче оптимизации производительности выделяют несколько аспектов: 1. Оптимизация размера базы данных; 2. Отслеживание текущей производительности; 3. Настройка индексов. 6.2.1. Оптимизация размера базы данных При оптимизации размера базы данных очень важно обоснованно распределить дисковое пространство. В MS SQL Server используется страничная организация памяти. Одна страница занимает 8Кб, из них 8060 б отводится под данные, остальные 132 б − под служебную информацию. Зная размер записи, предполагаемый объем и интенсивность изменений, можно определить требуемый объем дискового пространства и стратегию его приращения. Эти параметры используются при создании базы данных. Следует также учесть, что выполнение команды обновления статистики UPDATE STATISTICS для индекса вызовет добавление к нему дополнительной страницы для хранения статистических данных. Для таблицы в целом эта команда вызывает добавление дополнительной страницы для каждого индекса таблицы. Получить реальные данные о занимаемой объектом памяти можно с помощью системной процедуры sp_spaceused. Задание. 1. В режиме создания запроса SQL Server Management Studio указать базу данных для лабораторных работ.
49
2. Получить информация о памяти, занимаемой базой данных в целом. Для этого в окне команд ввести: sp_spaceused. Параметры не указываются. 3. Получить информация о памяти, занимаемой конкретной таблицей. Для этого в окне команд ввести: sp_spaceused . Более полный синтаксис команды: sp_spaceused [[, updateused = {True|False}]] Параметр updateused указывает, запускать ли команду DBCC UPDATEUSED (DBCC − Data Base Consistency Checker). Если имя объекта не задано, команда запускается в отношении всей базы данных. В противном случае она запускается в отношении указанного объекта. Если updateused = True, компонент SQL Server 2005 Database Engine просматривает страницы данных в базе и вносит все необходимые изменения в представления каталога sys.allocation_units и sys.partitions в отношении места для хранения каждой таблицы. Иногда возникают ситуации, например, при удалении индекса, когда сведения о таблице могут устареть. В этом случае sp_spaceused может дать неверный отчет, в частности, показать, что объем индексов больше объема данных. Для больших таблиц или баз данных выполнение процедуры может занимать некоторое время. Поэтому данный режим используется только в том случае, если есть сомнения в достоверности возвращаемых значений и если выполнение процедуры не будет неблагоприятно влиять на других пользователей и процессы в базе данных. При необходимости инструкцию DBCC UPDATEUSAGE можно запускать отдельно. 6.2.2. Отслеживание протекающих процессов, транзакций и блокировок В соответствии со стандартом SQL92 поддерживаются следующие уровни изоляции: • запрет одновременной модификации данных несколькими процессами; • запрет «грязного» чтения, т.е. чтения данных, которые в настоящий момент модифицируются; • запрет неповторяемого чтения; • запрет фантомов. Один из механизмов поддержания изоляции − блокировки. Имеется 6 основных уровней блокирования: • строка (идентифицируется RID − внутрисистемным идентификатором); • диапазон ключей (блокируется вставка и удаление с некотором диапазоне ключей, который берется из условия WHERE обработки данных. Это решает проблему фантомов); • страница (8Кб); • экстент (группа из 8 страниц, используется при расширении базы данных); • таблица (данные и индексы); • база данных.
50
Также могут блокироваться файла базы данных, метаданные, ресурсы, определяемые приложением, и др. Каждая блокировка занимает 96 б оперативной памяти. Минимально под блокировки отводится 2%, максимально − 40% памяти сервера. По умолчанию выполняется динамическое управление количеством блокировок. При ограниченных ресурсах можно лимитировать их количество: sp_configure ‘locks’, < количество >. Минимальное количество блокировок − 5000, максимальное − 2 147 483 647. При большом количестве блокировок внутри объекта сервер может повысить уровень блокирования, снизив этим затраты на хранение и анализ информации о блокировках. Например, при большом количестве блокировок записей, расположенных на одной странице, уровень блокирования может повыситься до страницы. При обращении к большинству страниц таблицы уровень блокирования может быть повышен до таблицы. Уровень блокирования повышается, если превышен порог распространения блокировок (lock escalation threshold). Это один из параметров настройки и администрирования сервера. Стратегию блокировки (оптимистическую или пессимистическую) выбирает сервер. При оптимистической стратегии конфликты транзакции выявляются при попытке ее завершения путем автоматического повторного чтения данных. При пессимистической стратегии изначально блокируется входное множество транзакции. Имеется 4 основных типа блокировок: • коллективная (S − shared), используется при операциях чтения, предотвращает наложение монопольной блокировки; • монопольная (X − eXclusive), накладывается кратковременно при выполнении физической записи на диск (оптимистическая стратегия) или на время работы транзакции (пессимистическая стратегия); • блокировка обновления (U − update), для операции изменения данных UPDATE предотвращает наложение новых блокировок типа S, чтобы после снятия ранее наложенных S-блокировок можно было наложить блокировку типа Х и записать изменения на диск; • блокировка массивного обновления (BU − bulk update), используется для операций массовой вставки данных утилитой bcp или командой bulk insert. Для строк и страниц возможны блокировки S,U,E, для таблиц − S,X,BU. Кроме основных имеются специальные типы блокировок: • блокировка намерения (intent lock); • блокировка схемы (schema lock); • блокировка диапазона ключей (key range lock). Блокировка намерения блокирует ресурсы вниз по иерархии объектов. Например, если предполагается, что хранимая процедура будет сканировать большую часть таблицы, для сокращения времени на захват ресурсов и снятие блокировок можно установить коллективную блокировку намерения на уровне таблицы. Тогда другие транзакции смогут читать, но не смогут захватить
51
монопольно данные таблицы. Очевидно, что коллективность работы при этом несколько снижается. Имеется 3 вида блокировок намерения: • разделяемая (IS − intent shared), предотвращающая монопольный захват ресурсов; • монопольная (IХ − intent exclusive), предотвращающая доступ к данным даже в том случае, когда они еще не изменяются; • разделяемая монопольная (SIX − shared with intent exclusive), обеспечивающая доступ к части данных, которую транзакция прочитала, но не изменила. Блокировка схемы имеет 2 варианта: • блокировка постоянства (schema stability), обеспечивающая неизменность структуры таблиц и индексов при любых обращениях к данным; • блокировка изменения схемы (schema modification), запрещающая любые обращения при внесении изменений в схему. Управление блокировками со стороны программиста возможно с помощью установки уровня изоляции транзакций командой SET TRANSACTION ISOLATION LEVEL и с помощью табличных хинтов (подсказок оптимизатору). Задание 1. С помощью справки рассмотреть подсказки, относящиеся к блокировкам (раздел подсказки [SQL Server], таблицы), найти в описании операторов SELECT, INSERT, UPDATE, DELETE, как синтаксически оформляется использование подсказок. В среде Microsoft SQL Server Management Studio для получения сведений о соединениях пользователей с компонентом Database Engine и об удерживаемых ими блокировках используется монитор активности. Он разбит на три страницы. Страница Сведения о процессе содержит сведения о соединениях. На странице Блокировки по процессам блокировки упорядочены по соединениям. На странице Блокировки по объектам блокировки упорядочены по именам объектов. Кнопка Фильтр снижает объем отображаемых данных. Монитор активности используется при диагностике проблем, связанных с блокировкой баз данных, а также для завершения взаимоблокированного или переставшего отвечать на запросы по другой причине процесса. Для просмотра монитора активности пользователю необходимо разрешение VIEW SERVER STATE на сервер SQL Server 2005. Разрешение KILL на завершение процесса предоставляется по умолчанию членам фиксированных ролей базы данных sysadmin и processadmin и не может быть передано. Для программного получения сведений о блокировках в компоненте SQL Server 2005 Database Engine используется динамическое административное представление sys.dm_tran_locks. Каждая строка представляет текущий активный запрос диспетчеру блокировок о блокировке, которая была получена или находится в ожидании получения. Системная хранимая процедура sp_who предоставляет сведения о текущих пользователях и процессах в экземпляре
52
Microsoft SQL Server Database Engine. Возвращаемые сведения можно отфильтровать, чтобы возвращались только те процессы, которые не простаивают. Задание 2. 1. В SQL Server Management Studio открыть папку Управление (Management). 2. Двойным щелчком мыши открыть монитор активности. Разобраться в предоставленной информации с точки зрения блокировок объектов и процессов, в свойствах процесса посмотреть последнюю выполненную команду (возможно, она является источником блокировки). 3. На странице Блокировки по процессам/Блокировки по объектам с помощью справки разобраться в обозначениях столбца Режим запроса и др. 4. На странице Блокировки по объектам посмотреть блокировки разных объектов. 5. Выполнить запрос на получение информации из административного представления sys.dm_tran_locks. С помощью справки разобраться в паолученных результатах. 6. Через средство задания запросов вызвать системную хранимую процедуру sp_who, возвращающую информацию о текущих пользователях и процессах. С помощью справки разобраться в выдаваемых этой процедурой результатах. 7. Активизировать папку Управление. Через панель инструментов вызвать режим получения сводок. Посмотреть отчет Задачи, разобраться в полученной информации. 8. Активизировать базу данных для лабораторных работ. С помощью режима Сводка/Отчет получить отчеты по транзакциям и блокировкам, разобраться в полученной информации. 6.2.3. Оптимизация индексов и обновление статистики Создание эффективных индексов существенно увеличивает производительность сервера. Но эта задача в ряде случаев является довольно сложной. Необходимо учесть множество факторов: структуру базы данных, объем и распределение данных в таблицах, характер и частоту выполнения запросов, в особенности запросов на изменение данных. Для помощи пользователю в проектировании индексов и выполнении других задач оптимизации базы данных имеется инструмент Помощник по настройке ядра СУБД (Database Engine Tuning Advisor). Он вызывается из пункта Сервис главного меню или через меню Пуск/Программы/Microsoft SQL Server 2005/Средства обеспечения производительности. Помощник по настройке ядра СУБД может: • рекомендовать наилучшее сочетание индексов для баз данных, используя оптимизатор запросов для анализа очередей рабочей нагрузки; • рекомендовать выровненные либо невыровненные секции для баз данных, затрагиваемых рабочей нагрузкой; • рекомендовать индексированные представления для баз данных, затрагиваемых рабочей нагрузкой;
53
• анализировать эффект от предложенных изменений, включая использование индекса, распределение запросов между таблицами и производительность запросов рабочей нагрузки; • рекомендовать способы настройки базы данных для небольшого набора проблемных запросов; • обеспечить возможность настройки рекомендаций путем указания дополнительных параметров, например ограничений на место на диске; • формировать отчеты о результатах применения рекомендаций для заданной рабочей нагрузки; • вырабатывать альтернативные варианты выбора структуры в виде гипотетических конфигураций для оценки помощником по настройке ядра СУБД. На вход помощника подается информация о выполняющихся запросах. Она представляется в виде файла, содержащего sql-скрипт, или в виде таблицы, получаемой при трассировке с помощью SQL Server Profiler (см. ниже). Создать файл рабочей нагрузки можно из режима формулирования запросов, записав последовательность команд через пункт меню Файл/Сохранить как. Указывается также база данных для анализа нагрузки и объекты настройки. Т.к. помощник может работать весьма долго, ограничивают время настройки. Задание. 1. В режиме ввода запросов создать несколько запросов к таблицам базы данных для лабораторных работ, в том числе многотабличный запрос, запрос на ввод данных, запрос на корректировку данных с условием отбора. 2. Создать файл рабочей нагрузки, сохранив последовательность команд через пункт меню Файл/Сохранить как. 3. Запустить Помощник по настройке ядра СУБД, ознакомиться с его возможностями, на основе созданного файла рабочей нагрузки выполнить настройку имеющихся объектов, посмотреть полученные результаты, ознакомиться с выдаваемыми отчетами. Еще одним средством оптимизации служит дефрагментация индексов. Фрагментация индексов может возникнуть при изменении данных в таблице, влияющем на индексную страницу. Фрагментация может быть внутренней и внешней. Внутренняя фрагментация порождается освобождением дискового пространства при удалении записей. Страницы индекса используются неэффективно. Кроме завышенных затрат дисковой памяти это приводит к замедлению работы, т.к. при чтении индекса требуется загружать большее количество страниц в оперативную память, увеличивается количество операций ввода/вывода. Операции ввода и корректировки могут вызвать внешнюю фрагментацию. Если на странице, куда надо поместить строку индекса или данных, не хватает места, происходит расщепление страниц. Добавляется новая страница, и сервер делит строки данных или индекса между исходной и вновь созданной страницей.
54
Логическая упорядоченность индекса поддерживается с помощью ссылок, физическое размещение добавленных страниц не упорядочено. Это ведет к значительным перемещениям головки диска при чтении индекса. Особенно чувствительна к этому операция опережающего чтения при сканировании диапазона индексов. Внешняя фрагментация всегда нежелательна. Некоторый процент внутренней фрагментации уместен в базах данных с интенсивным вводом и изменением данных для предотвращения расщепления страниц. Для определения фрагментации индексов имеется функция динамического управления sys.dm_db_index_physical_stats. Она используется в простейшем операторе выборки. Чтобы получить информацию по конкретной базе данных, необходимо ввести select * from sys.dm_db_index_physical_stats (DB_ID (''),null,null,null,null) Для получения информации обо всех базах данных вводится select * from sys.dm_db_index_physical_stats (null,null,null,null,null) Для определения уровня внешней фрагментации следует проверять значение столбца avg_fragmentation_in_percent. Оно должно быть как можно более близким к нулю. Но могут быть приемлемыми значения от 0 до 10 процентов. Заполненность страниц (внутренняя фрагментация) отражается в столбце avg_page_space_used_in_percent. Для достижения оптимального использования дискового пространства это значение должно быть близко к 100 процентам для индексов с нечастными операциями вставки и изменения. В индексе с множеством подобных операций, имеющем очень заполненные страницы, будет расти число разбиений страниц, т.е. внешняя фрагментация. Для снижения числа разбиений страниц значение в столбце avg_page_space_used_in_percent должно быть меньше 100 процентов. Перестроение индекса с параметром FILLFACTOR позволяет изменять степень заполненности страницы для обеспечения соответствия индекса структуре запроса. Дефрагментация индексов производится при помощи команды ALTER INDEX … REORGANIZE или ALTER INDEX … REBUILD. Параметр REBUILD устраняет все виды фрагментации, т.к. индекс удаляется и строится заново. Внешняя фрагментация устраняется переупорядочением строк на соседних страницах, внутренняя – уплотнением страниц в соответствии с заданным коэффициентом заполнения. Индекс перестраивается без изменения индексируемых столбцов, типов индекса, атрибута уникальности и порядка сортировки. Отключенные индексы при этом включаются. При перестройке кластеризованного индекса не перестраиваются ассоциированные некластеризованные индексы, если только не указано ключевое слово ALL. Если параметры индекса не заданы, то применяется существующие параметры индекса, которые хранятся в таблице sys.indexes. Для любого параметра индекса, значение которого не хранится в таблице sys.indexes, применяется значение по умолчанию,
55
указанное в определении аргумента. Возможно минимальное протоколирование операции перестройки, если модель восстановления базы данных настроена на массовый или простой режим. Параметр REORGANIZE указывает, что будет реорганизован конечный уровень (листья) индекса. Реорганизация всегда выполняется в оперативном режиме. Это означает, что долгосрочные блокировки таблицы не удерживаются и во время выполнения команды с таблицей можно работать в обычном режиме. Команда не применима к отключенному индексу. При незначительной фрагментации (avg_fragmentation_in_percent от 10 до 15, avg_page_space_used_in_percent от 60 до 75) можно ограничиться реорганизацией, не требующей значительных системных ресурсов и выполняющейся в оперативном режиме. При avg_fragmentation_in_percent больше 15, avg_page_space_used_in_percent меньше 60 целесообразно пересоздание индекса. Задание. 1. В режиме ввода запросов создать получить информацию о фрагментации базы данных для лабораторных работ и всех баз данных. 2. С помощью справки ознакомиться с параметрами функции sys.dm_db_index_physical_stats. 3. С помощью справки ознакомиться с возможностями команды ALTER INDEX/ Обновление статистики рекомендуется делать, если количество обновлений/удалений превышает 20% размера исходной таблицы. В иных случаях сервер периодически во время простоя процессора сам актуализирует статистику. Статистика используется оптимизатором при построении плана запроса. Она учитывает распределение значений столбцов и позволяет оптимизатору определить, улучшает ли использование индексов производительность запросов. Автоматическое создание/обновление статистики для конкретной базы данных задается в ее свойствах. Принудительно создание/обновление статистики выполняется командами CREATE STATISTICS, UPDATE STATISTICS. Задание. С помощью справки разобраться в возможностях команд CREATE STATISTICS и UPDATE STATISTICS. Найти другие средства (системные хранимые процедуры и утилиты) для работы со статистикой. 6.3. Мониторинг и аудит Мониторинг и аудит выполняются с помощью утилит SQL Server Profiler SQL и Performance Monitor. SQL Server Profiler (программа SQLTRACE) предназначен для контроля текущей активности. SQL Server Profiler можно запустить из пункта Сервис (Tools) основного меню SQL Server Management Studio или через меню Пуск, раздел сервера Средства обеспечения производительности. Можно контролировать конкретного пользователя, приложение, компьютер, событие. Контроль осуществляется с помощью трассировок.
56
Трассировка является поименованным заданием, содержащим перечень подлежащих отслеживанию объектов и/или событий. Создание задания на трассировку: File/New/Trace (или кнопка New Trace). При создании трассировки прежде всего указывается сервер. Доступны все сервера, видимые в окне SQL Server Management Studio. Закладка Общие (General) позволяет указать имя задания (Trace Name), выбрать сервер, шаблон трассировки и ее некоторые параметры. Шаблон содержит перечень трассируемых событий и фильтры, обеспечивающие адресность трассировки. Результат трассировки можно записать в файл или таблицу (при записи в таблицу возможна последующая обработка накопленных данных). Закладка выбора событий (Events) обеспечивает выбор событий для трассировки. Здесь же можно выбрать показываемые столбцы таблицы, куда заносятся результаты трассировки, и указать приложения и пользовательские действия, которые учитываются и/или не учитываются в ходе трассировки. Для некоторых объектов (например, CPU) можно указать предельные значения или конкретное значение. После запуска задания формируется экран трассировки, состоящий из окна текущей активности и окна сведений о выделенной команде. Пункт Воспроизведение (Replay) основного меню позволяет повторить действия, зафиксированные трассировкой (при записи результатов в таблицу или файл). Задание 1. Запустить SQL Server Profiler. Ознакомиться с основными возможностями оболочки. С помощью справки ознакомиться с категориями трассируемых событий и классами событий каждой категории. Задание 2. Выполнить трассировку. 1. Создать задание на трассировку, выбрав события, предлагаемые стандартным шаблоном, добавить к ним класс Performance. 2. Запустить созданное задание. 3. Из среды SQL Server Management Studio запустить режим создания запросов, выбрать свою базу данных, запустить простейший оператор выборки Select * … по одной из ранее созданных таблиц. 4. Просмотреть результаты трассировки. 5. Создать файл результатов трассировки. Запустить этот файл с помощью команды воспроизведения Replay. SQL Performance Monitor работает в среде Performance Monitor Windows NT и позволяет встроить объекты статистики SQL Server в общую систему статистики Windows NT. Фиксируются операции поиска, выполненные с помощью индексов или путем полного сканирования таблицы (эффективность индексов!), распределение данных по страницам памяти (эффективность использования памяти, fill factor!), использование буферов (нехватка оперативной памяти!), ход выполнения транзакций (активность, ожидание из-за взаимоблокировок или по другим причинам) и др. SQL Performance Monitor
57
позволяет на основе накопленной статистики строить диаграммы, с заданным периодом считывать показатели и представлять динамику их изменения в графическом виде. Можно получить также текстовые отчеты. Существует возможность создания оповещений. Если некоторый счетчик достигает установленной величины, SQL Performance Monitor может запустить указанную программу (например, послать сообщение на пэйджер администратора). Задание 1. Запустить Performance Monitor. Ознакомиться с основными возможностями оболочки и счетчиками, характеризующими работу системы.
58
7. РАБОТА № 6. ОБМЕН ДАННЫМИ С ДРУГИМИ СУБД В качестве примера для обмена данными используется СУБД MS ACCESS2000. Для дальнейшей работы необходимо создать в среде этой СУБД базу данных, содержащую хотя бы одну таблицу, заполненную несколькими строками данных. 7.1. MS SQL Server – другие СУБД «Видеть» со стороны MS SQL Server данные, управляемые другими СУБД, можно с помощью линкования этих СУБД к MS SQL Server или с помощью переноса данных этих СУБД в форматы MS SQL Server (импорт данных). Линкование к MS SQL Server. Задание. Прилинковать к MS SQL Server Access2000. 1. Enterprise Manager/Security/Linked Servers/New/General. 2. В поле Linked server указать произвольное имя, под которым прилинкованный сервер будет виден в Enterprise Manager. Server type: провайдер Microsoft Jet OLE DB Provider, Product name − произвольное имя, Data source − полный путь в файлу базы данных Access (например, C:\ACCESS\MYBASE.MDB). В результате в Enterprise Manager будет виден перечень источников данных (таблиц и видов) присоединенной базы данных. 3. В Query Analyzer обратиться к одной из таблиц базы: SELECT * FROM OPENQUERY(< имя прилинкованного сервера >, < строка текста запроса >) Например: SELECT * FROM OPENQUERY(ACCESS2000,’SELECT * FROM MYTABLE’) Импорт данных в MS SQL Server. Операция выполняется с помощью утилиты экспорта/импорта DTS − Data Transformation Services. Утилита для выбранного сервера вызывается одним из 2 способов: • Action (или нажатие правой кнопки мыши)/All Tasks/Import (Export) Data; • Tools/Data Transformation Services/ Import (Export) Data. Далее запускается соответствующий Wizard. Задание. Импортировать в MS SQL Server одну или несколько таблиц Access. 1. Выбрать сервер, выбрать целевую базу данных. 2. Запустить Wizard импорта. 3. Указать источник данных − MS ACCESS, выбрать исходную базу данных.
59
4. Указать провайдер (Microsoft OLE DB Provider for SQL Server) и сервер для целевой базы. 5. Выбрать способ отбора данных: копирование таблиц или запуск построенного запроса. В первом случае предлагается выбрать импортируемые таблицы и, при необходимости, изменить их структуру с помощью опции Transform. При этом можно скорректировать текст SQL-оператора создания таблицы. Во втором случае можно написать текст SQL-запроса в окне или воспользоваться построителем запросов. На заключительном этапе определяется время запуска импорта: немедленно или по расписанию. 6. Проверить доступность импортированных данных с помощью Open Table/Return All Rows. 7.2. Другие СУБД – MS SQL Server «Видеть» в других СУБД данные MS SQL Server можно путем экспорта, линкования или посылки прямых запросов серверу. Две последних возможности реализованы не во всех СУБД. Экспорт данных из MS SQL Server Операция выполняется с помощью утилиты экспорта/импорта DTS −Data Transformation Services аналогично импорту. Задание. Экспортировать в Access одну или несколько таблиц MS SQL Server. 1. Запустить Wizard экспорта. 2. Указать источник данных − MS SQL Server, указать целевую СУБД − MS ACCESS и целевую базу данных. 3. Аналогично импорту выбрать способ отбора данных и время запуска операции. 4. Запустить MS ACCESS, просмотреть экспортированные таблицы. Линкование таблиц MS SQL Server к ACCESS С прилинкованными таблицами MS ACCESS работает так же, как и с собственными. Отличием является невозможность изменения структуры таблицы. Задание. Прилинковать таблицу MS SQL Server к Access. 1. В режиме создания таблицы Access выбрать опцию «Связь с таблицами», в окне «Связь» указать тип файла ODBC Databases. 2. Создать машинный источник данных, нажав кнопку New. При этом выбирается тип источника данных – пользовательский или системный, указывается драйвер SQL Server, произвольное имя источника данных, имя сервера, которым управляется требуемая база, и способ доступа к нему с использованием вводимого пользователем имени sa (system admin). Далее указывается база данных по умолчанию и тестируется соединение. 3. Соединиться с сервером, отменив использование защищенного соединения, выбрать присоединяемую таблицу.
60
4. Просмотреть данные присоединенной таблицы в MS Access, зайти в режим конструктора таблиц, выяснить, какие свойства таблицы можно изменить, какие нельзя. Прямой запрос к серверу. Запрос составляется на языке SQL в диалекте целевого сервера и непосредственно, минуя ряд шагов процессора запросов СУБД-клиента, передается целевому серверу. Задание. Послать из MS Access прямой запрос к MS SQL Server. 1. В режиме создания запросов Access вызвать конструктор запросов, отказаться от указания исходных таблиц. 2. Выбрать в главном меню Запрос/Запрос SQL/К серверу. В появившемся окне ввести текст запроса, например: SELECT * FROM Test.Mybase.Dbo.Mytable, где
Test – имя сервера, Mybase – имя базы данных, Dbo – имя владельца таблицы, Mytable – имя таблицы. Запустить запрос нажатием на кнопку с красным восклицательным знаком. При выполнении запроса используется ранее созданный источник данных.
61
ОГЛАВЛЕНИЕ ВВЕДЕНИЕ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. ЗНАКОМСТВО С MS SQL SERVER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. РАБОТА № 1. БАЗЫ ДАННЫХ И ЖУРНАЛЫ ТРАНЗАКЦИЙ . .. . . . . . . . 2.1. Создание базы данных . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.1.1. Создание базы данных из среды Management Studio . . . . . . . . . . 2.1.2. Свойства базы данных . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2. Типы полей . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2.1. Базовые типы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2.2. Типы данных, определяемые пользователем . . . . . . . . . . . . . . . . . 2.3. Создание таблиц, ввод данных, определение ключей, индексирование 2.4. Системные базы данных . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.4.1. База данных Resource . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.4.2. База данных master . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.4.3. База данных model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.4.4. База данных msdb . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.4.5. База данных tempdb . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.4.6. Системный каталог . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. РАБОТА № 2. СОЗДАНИЕ ПРЕДСТАЛЕНИЙ и ЗАПРОСОВ . . . . . . . . . . . 3.1. Создание видов (обзоров, представлений) . . . . . . . . . . . . . . . . . . . . . . . . 3.2. Создание и анализ запросов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3. Конструктор запросов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4. РАБОТА № 3. ПРОГРАММИРОВАНИЕ СЕРВЕРА . . . . . . . . . . . . . . . . . . . . 4.1. Хранимые процедуры . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2. Пользовательские функции . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.3. Триггеры базы данных . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.4. Сборки . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5. РАБОТА № 4. СИСТЕМА БЕЗОПАСНОСТИ И РЕЗЕРВИРОВАНИЯ . . . . 5.1. Настройка контактной зоны и проверки подлинности . . . . . . . . . . . . . . 5.2. Ограничение входа в систему . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.3. Управление доступом к базам данных . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.3.1 Пользователи . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.3.2. Роли . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.3.3. Схемы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.3.4. Шифрование . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.4. Резервирование и восстановление . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6. РАБОТА № 5. НАСТРОЙКА, ОПТИМИЗАЦИЯ ПРОИЗВОДИТЕЛЬНОСТИ, ОБСЛУЖИВАНИЕ . . . . . . . . . . . . . . . . . . . . . 6.1. Настройка . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.1.1. Настройка параметров сервера . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.1.2. Настройка параметров базы данных . . . . . . . . . . . . . . . . . . . . . . . . 6.1.3. Настройка параметров запросов . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.1.4. Проверка целостности базы данных . . . . . . . . . . . . . . . . . . . . . . . .
3 4 7 7 7 7 10 10 12 13 17 18 20 21 22 22 23 25 25 25 26 28 28 29 32 35 36 36 37 40 41 42 43 44 44 48 48 48 48 48 49
62
6.2. Оптимизация производительности . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.2.1. Оптимизация размера базы данных . . . . . . . . . . . . . . . . . . . . . . 6.2.2. Отслеживание протекающих процессов, транзакций и блокировок . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.2.3. Оптимизация индексов и обновление статистики . . . . . . . . . . 6.3. Мониторинг и аудит . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7. РАБОТА № 6. ОБМЕН ДАННЫМИ С ДРУГИМИ СУБД . . . . . . . . . . . . 7.1. MS SQL Server – другие СУБД . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.2. Другие СУБД – MS SQL Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
49 49 50 53 56 59 59 60
63
Электронное издание Елена Семеновна Ярош Работа в среде MS SQL Server 2005 Учебное пособие к лабораторным работам. Техн. редактор А.В. Миних Издательство Южно-Уральского государственного университета Подписано в печать 09.02.2009. Формат 60Х84 1/16. Усл. печ. л. 3,72. Уч.-изд. л. 3,6. Заказ 39.
64