Системные хранимые процедуры
В SQL Server имеются системные хранимые процедуры, с помощью которых можно выполнять администрирование и другие задачи, требующие обновления системных таблиц и извлечения информации из системных таблиц. Системные хранимые процедуры инсталлируются вместе с SQL Server, их имена начинаются с sp_ (что означает stored procedure, хранимая процедура) или с xp_ (extended stored procedure, расширенная системная хранимая процедура). Эти процедуры хранятся в базе данных master (главной системной базе данных) (а также базе msdb.), их владелец системный администратор, но многие из них могут запускаться из любой пользовательской базы данных, извлекая при этом информацию из системных таблиц этой базы данных. Когда вы исполняете системную хранимую процедуру, она работает с системными таблицами текущей базы данных.
Многие системные хранимые процедуры появились в SQL Server 7, сейчас они по-прежнему доступны и в SQL Server 2000. Некоторые из этих хранимых процедур не только немедленно выдают информацию, но могут и сохранять для дальнейшего применения важную информацию о пользовательских базах данных. Например, процедуры, возвращающие информацию о базе данных пользователя, могут оказаться полезными при исполнении в сценариях T-SQL, когда выдаваемая ими информация будет сохраняться в файле. Мы можем сохранять информацию, выдаваемую после запуска хранимых процедур sp_helpfile, sp_helpfilegroup и sp_helpdb, примененных к нужной базе данных (процедура sp_helpdb, хоть и старая, но по-прежнему пользуется популярностью). Это пригодится в случае, если придется воссоздавать базу данных и понадобится информация о первоначально созданных и сконфигурированных файлах, группах файлов и опциях базы данных.
Системные таблицы
Системные таблицы служат для хранения информации о конфигурации SQL Server и хранения заданных для баз данных определений объектов, пользователей и полномочий доступа. Каждая пользовательская база данных имеет свои собственные системные таблицы, в которых хранится информация для этой базы данных. Системные таблицы, хранящие информацию о конфигурации на уровне сервера, хранятся только в базе данных master (главной системной базе данных). Для доступа к системным таблицам нужно применять системные хранимые процедуры, а не осуществлять доступ непосредственно.
backupfile. Эта таблица находится в базе данных msdb. В ее строках хранится информация обо всех резервных копиях журналов и файлов базы данных. Хранится информация об идентификаторах файлов, о группах, к которым принадлежат файлы, и о буквах для обозначения физических дисков, на которых расположены файлы.
restorehistory. Эта таблица находится в базе данных msdb. В ее строках хранится информация обо всех операциях восстановления файлов и баз данных. В этой таблице содержится информация о дате и времени выполненного резервного копирования, о целевой базе данных, о моменте времени, когда было восстановление, и о типе восстановления.
sysfiles. Это виртуальная таблица, поэтому она не может обновляться непосредственно. В ней содержится информация обо всех файлах базы данных, например, физические и логические имена файлов, размеры и максимальные размеры файлов и приращение роста (если эти значения заданы).
Функции
При помощи встроенных функций SQL Server возможно быстрое и удобное решение некоторых задач. Некоторые новые функции появились в SQL Server 7, и они остались доступными и в SQL Server 2000. Ниже приведены описания лишь нескольких из новых функций:
NEWID. Создает глобально уникальный идентификатор (GUID, globally unique identifier), он имеет тип данных uniqueidentifier. Эту функцию можно применять для ввода значений в колонки, имеющие тип данных uniqueidentifier. Применение: NEWID(). (Этой функции не нужны параметры.)
o YEAR. Возвращает целое число, соответствующее году для заданной даты. Применение: YEAR(дата). Пример: оператор SELECT YEAR(07/11/01') выдаст значение 2001.
o MONTH. Возвращает целое число, соответствующее месяцу для заданной даты. Применение:MONTH(дата). Пример: оператор SELECT MONTH(07/11/01') выдаст значение 7.
o DAY. Возвращает целое число, соответствующее дню для заданной даты. Применение: DAY(дата). Пример: оператор SELECT DAY(07/11/01') выдаст значение 11.
o FILE_NAME. Возвращает логическое имя файла, соответствующее заданному номеру идентификатора файла. Применение: FILE_NAME (номер_идентификатора_файла). Пример: оператор SELECT FILE_NAME(4) вернет имя файла, имеющего идентификатор 4. Если в базе данных нет файла с таким идентификатором, то будет возвращено значение NULL.
Типы данных
В SQL Server 7 появилось несколько новых типов данных, а некоторые из имеющихся типов данных получили новые размеры. В SQL Server 2000 помимо этих новшеств появилось еще три новых типа данных. Ниже дан список изменений, относящихся к типам данных, появившихся в SQL Server 7 и оставшихся и в SQL Server 2000:
o Появился новый тип данных, cursor, для переменных-курсоров. Дополнительную информацию о курсорах вы найдете в Books Online, в теме "Cursors".
o Появились новые типы данных для кодировки Unicode: nchar, nvarchar и ntext. При использовании кодировки Unicode на один символ расходуется по 2 байта, и эта кодировка мжет поддерживать символы всех имеющихся в мире языков.
o Появился новый тип данных uniqueidentifier, применяемый для хранения глобально уникальных идентификаторов (GUID).
o Максимальная длина строк с символьными и с двоичными данными увеличилась до 8000 байт. Эта длина допустима для типов данных char, varchar, binary и varbinary.
o А ниже перечислены три новых типа данных, появившихся в SQL Server 2000:
o bigint хранит 8-байтные целые числа.
o sql_variant позволяет хранить значения разных типов в одной и той же колонке. В колонках этого типа хранятся как сами данные, так и сведения о них (базовый тип данных, масштаб, точность, максимальный размер и свойства для сравнения (collation)).
o table этот тип данных аналогичен временным таблицам, описание данных включает в себя список колонок с типами данных. Этот тип данных можно применять для задания локальных переменных или для возвращаемых значений пользовательских функций.
Операторы
В SQL Server 7 появилось много новых операторов T-SQL, а имеющиеся операторы приобрели новые возможности, и все это вошло и в SQL Server 2000. Эти операторы соответствуют некоторым из новых возможностей, появившихся в SQL Server 7. Например, оператор ALTER DATABASE получил следующие новые опции для работы с файлами и группами файлов: MODIFY FILE, ADD FILEGROUP, MODIFY FILEGROUP, REMOVE FILE и REMOVE FILEGROUP. А для групп файлов новый оператор DBCC CHECKFILEGROUP проверяет размещение и структурную целостность всех таблиц в заданной группе файлов.
В SQL Server 7 и SQL Server 2000 появилось еще два оператора DBCC DBCC SHRINKFILE и DBCC SHRINKDATABASE. Первый из них сжимает заданный файл данных, уменьшая его размер, а второй оператор сжимает все файлы в заданной базе данных, освобождая неиспользуемое место на диске.
У SQL Server 7 и SQL Server 2000 была усовершенствована архитектура для резервного копирования и восстановления. Новый оператор BACKUP позволяет выполнять полные и частичные резервные копирования базы данных и журнала, а новый оператор RESTORE позволяет восстанавливать базы данных и журналы после этого резервного копирования. Эти операторы применяются вместо операторов DUMP и LOAD из старых версий SQL Server.
Применение T-SQL
Содержание
Введение 3
1. История развития MS SQL Server 4
2. Базы данных SQL Server 7
2.1. Типы баз данных 7
2.2. Объекты баз данных 8
2.3. Обращение к объектам SQL Server 9
2.4. Системные таблицы 11
3. SQL 13
4. Transact-SQL 19
5. Администрирование Microsoft SQL Server 26
5.1. Автоматизация часто выполняемых задач 26
5.2. Объявление шагов работы 28
5.3. Запланированные работы 30
5.4. Создание операторов для извещения 30
5.5. Просмотр и конфигурирование истории работ 32
6. Управление безопасностью приложения 34
Заключение 38
Глоссарий 39
Библиография 41
Приложение 1 42
Введение
Всякая профессиональная деятельность, так или иначе связана с информацией, с организацией ее сбора, хранения, выборки. Можно сказать, что неотъемлемой частью повседневной жизни стали базы данных, для поддержки которых требуется некоторый организационный метод, или механизм. Такой механизм называется системой управления базами данных (СУБД).
База данных (БД) совместно используемый набор логически связанных данных (и их описание), предназначенный для удовлетворения информационных потребностей организации.
СУБД (система управления базами данных) программное обеспечение, с помощью которого пользователи могут определять, создавать и поддерживать базу данных, а также получать к ней контролируемый доступ [1].
Системы управления базами данных существуют уже много лет, многие из них обязаны своим происхождением системам с неструктурированными файлами на больших ЭВМ. Наряду с общепринятыми современными технологиями в области систем управления базами данных начинают появляться новые направления, что обусловлено требованиями растущего бизнеса, все увеличивающимися объемами корпоративных данных и, конечно же, влиянием технологий Internet.
Одной из популярных СУБД является MS SQL Server. Microsoft SQL Server - система управления реляционными базами данных (СУБД), разработанная корпорацией Microsoft.
1. История MS SQL Server
Исходный код MS SQL Server (до версии 7.0) основывался на коде Sybase SQL Server, и это позволило Microsoft выйти на рынок баз данных для предприятий, где конкурировали Oracle, IBM, и, позже, сама Sybase. Microsoft, Sybase и Ashton-Tate первоначально объединились для созданя и выпуска на рынок первой версии программы, получившей название SQL Server 1.0 для OS/2 (около 1989 года), которая фактически была эквивалентом Sybase SQL Server 3.0 для Unix, VMS и др. Microsoft SQL Server 4.2 был выпущен в 1992 году и входил в состав операционной системы Microsoft OS/2 версии 1.3. Официальный релиз Microsoft SQL Server версии 4.21 для ОС Windows NT состоялся одновременно с релизом самой Windows NT (версии 3.1). Microsoft SQL Server 6.0 был первой версией SQL Server, созданной исключительно для архитектуры NT и без участия в процессе разработки Sybase.
К тому времени, как вышла на рынок ОС Windows NT, Sybase и Microsoft разошлись и следовали собственным моделям программного продукта и маркетинговым схемам. Microsoft добивалась исключительных прав на все версии SQL Server для Windows. Позже Sybase изменила название своего продукта на Adaptive Server Enterprise во избежание путаницы с Microsoft SQL Server. До 1994 года Microsoft получила от Sybase три уведомления об авторских правах как намёк на происхождение Microsoft SQL Server.
После разделения компании сделали несколько самостоятельных релизов программ. SQL Server 7.0 был первым сервером баз данных с настоящим пользовательским графическим интерфейсом администрирования. Для устранения претензий со стороны Sybase в нарушении авторских прав, весь наследуемый код в седьмой версии был переписан.
Переход с SQL Server 7,0 по SQL Server 2000 имеет более эволюционный шаг, не влечет за собой те же огромные изменения, которые были внесены в перейти от 6,5 к 7,0. Напротив, SQL Server 2000 построено по нарастающей на новый код базы, которая была создана в 7,0 версии. Начиная с SQL Server 2000, Microsoft начала выпуска обновления основных выпуск SQL Server в следующем году, начиная с XML в SQL Server Web Выпуск 1, в котором появилось несколько XML функций, включая возможность получить набор результатов как XML документ. В следующем году они переименовали в Интернете версии к более сжато названием SQLXML 2,0, который, помимо прочего, добавлена возможность обновления базы данных SQL Server с использованием XML updategrams. Это было быстро последовало в SQLXML 3,0 веб версии, которая включает способность подвергать хранимых процедур, как веб-службы. Текущая версия Microsoft SQL Server 2005 была представлена в ноябре 2005 года. Запуск версии происходил параллельно запуску Visual Studio 2005. Существует также «урезанная» версия Microsoft SQL Server Microsoft SQL Server Express; она доступна для скачивания и свободно распространяется с использующим её программным обеспечением.
С момента выпуска предыдущей версии SQL Server (SQL Server 2000) было осуществлено развитие интегрированной среды разработки и ряда дополнительных подсистем, входящих в состав SQL Server 2005. Изменения коснулись реализации технологии ETL (извлечение, преобразование и загрузка данных), входящей в состав компонента SQL Server Integration Services (SSIS), сервера оповещения, средств аналитической обработки многомерных моделей данных (OLAP) и сбора релевантной информации (обе службы входят в состав Microsoft Analysis Services), а также нескольких служб сообщений, а именно Service Broker и Notification Services. Помимо этого, были произведены улучшения в производительности.
Хронология развития истории SQL Server:
o 1987 - Sybase версии SQL Server для UNIX.
o 1988 - Microsoft, Sybase и Aston - Тейт порт SQL Server в OS / 2.
o 1989 - Microsoft, Sybase и Aston - Тейт версии SQL Server 1,0 по OS / 2.
o 1990 - SQL Server 1,1 выпускается с поддержкой Windows 3,0 клиентов.
o 1991 - Microsoft и IBM конце совместной разработке OS / 2.
o 1992 - Microsoft SQL Server 4,2 по 16 - разрядной ОС / 2 1,3 освобождается.
o 1992 - Microsoft и Sybase SQL Server порта для Windows NT.
o 1993 - Windows NT 3,1 освобождается.
o 1993 - Microsoft и Sybase выпуска версии 4,2 в SQL Server для Windows NT.
o 1994 - Microsoft и Sybase совместно развитие SQL Server заканчивается. Microsoft продолжает разработку Windows версии SQL Server. Sybase продолжает развивать UNIX версии SQL Server.
o 1995 - Microsoft Пресс-релизы версии 6,0 в SQL Server.
o 1996 - Microsoft Пресс-релизы версии 6,5 в SQL Server.
o 1998 - Microsoft Пресс-релизы версии 7,0 в SQL Server.
o 2001 - Microsoft XML версии для SQL Server Web Выпуск 1 (скачать).
o 2002 - Microsoft Пресс-релизы SQLXML 2.0 (переименована из XML для SQL Server).
o 2002 - Microsoft Пресс-релизы SQLXML 3,0.
o 2005 - Microsoft версии SQL Server 2005 по 7 ноября 2005 года.
2. Базы данных SQL Server
2.1. Типы баз данных
Каждый SQL Server содержит два типа баз данных: системные и пользовательские. Системные базы данных содержат информацию обо всём SQL Server. SQL Server использует системные базы данных для использования и управления системой. Пользовательские базы данных это базы данных созданные пользователем [2].
Когда SQL Server установлен, SQL Server Setup создаёт системные базы данных и образцы пользовательских баз данных. Следующие базы данных существуют в каждом SQL Server.
Таблица 1
Существующие базы данных в каждом SQL Server
База данных Описание
master Управляет пользовательскими базами данных и работой самого SQL Server с помощью хранения записей о такой информации как пользовательские учётные записи, конфигурируемые переменные окружения и сообщения системных ошибок.
model Содержит шаблоны и прототипы для новых пользовательских баз данных
tempdb Обеспечивает место хранения для временных таблиц и других, необходимых во время работы, временных данных.
msdb Обеспечивает место хранения для информации о запланированных (Schedule) заданиях и истории работ.
distribution Хранит историю и данные транзакций при репликации.
pubs Хранит образцы баз данных для учебных целей.
Northwind Хранит образцы баз данных для учебных целей.
1. Мамаев Е.А, Шкарина Л.В. Microsoft SQl Server 2000 для профессионалов. - СПб:Питер, 2001. 415 с.
2. Хоторн Роб. Разработка баз данных, Micrososoft SQL Server 2000. М.: Вильямс, 2001. 625 с.
3. Шарон Б., Мэйбл Грэг. Sql Server 2000, Энциклопедия программиста. М.: ДиаСофт, 2001. 509 с.
4. Артемов Д.И. Microsoft SQL Server 2000: профессионалы для профессионалов. М.: Русская Редакция, 2005. 512 с.
5. Лизенбардт М.А., Стиглер М.Ш. Администрирование SQL Server 2000. Полное руководство. К: BHV-Киев, 2001. 400 с.
6. Грег Мэйбл, Шарон Бьелетич. Microsoft SQL Server 2000. Энциклопедия пользователя. М.: Диасофт, 2001. 688 с.
7. Пирогов В. Ю. MS SQL Server 2000: управление и программирование. СПб: BHV-Санкт-Петербург, 2004, 608 с.
8. Дэвидсон Л. Проектирование баз данных на SQL Server 2000. М.: Лаборатория Базовых Знаний, 2003, 680 с.
9. Ребекка М. Риордан. Программирование в Microsoft SQL Server 2000. Шаг за шагом. М.: Эком, 2002. 608 с.
10. Робин Дьюсон. SQL Server 2000. Программирование. М: Бином. Лаборатория знаний, 2002. 794 с.
11. Дж Рединг, Марсилина Гарсиа, С ДеЛюк, Эдвард Уолен. Microsoft SQL Server 2000. Справочник администратора. М: Эком, 2002. 976 с.
12. Г. Малкольм. Программирование для SQL Server 2000 с использованием XML. М.: Русская Редакция, 2002. 320 с.