
- •6 Работа в системе microsoft sql server
- •6.1 Общая характеристикаMssqlServer
- •6.2 Язык запросовTransact-sql
- •6.3 Системные базы данных и таблицы
- •6.4 Создание баз данных
- •6.4.1 Создание баз данных вSqlServerEnterpriseManager
- •6.4.2 Создание баз данных с помощьюTransact-sql
- •6.5 Добавление пользователей
- •6.6 Работа с таблицами
- •6.6.1 Способы создания таблиц и типы данных
- •6.6.2 Создание и связывание таблиц в sql Server Enterprise Manager
- •6.6.3 Создание и модификация таблиц вTransact-sql
- •6.7 Выборка данных и создание представлений
- •6.8 Основы программирования
- •6.8.1 Основные команды и функции
- •6.8.2 Пример создания кода в теле хранимой процедуры
- •6.9 УстановкаMs sql server
6.3 Системные базы данных и таблицы
База данных в SQL Server представляет собой логический объект, в котором размещаются таблицы и индексы. Физически база данных содержится в одном или нескольких файлах операционной системы.
Различают таблицы двух типов: постоянные и временные. Постоянные таблицы существуют до тех пор, пока их не удалят. Временные таблицы подразделяют на локальные и глобальные. Первые (локальные временные таблицы) существуют в текущем сеансе и затем уничтожаются. Вторые (глобальные временные таблицы) существуют до завершения всех использующих их сеансов.
Для хранения баз данных используются три типа файлов: основной, вспомогательные и журналов транзакций (рис. 6.4).
Основной (Primary) файл создается один и содержит информацию, требуемую для инициализации;
вспомогательные (Secondary) файлы содержат данные, не умещающиеся в основном файле; использование их не обязательно, но позволяет разместить БД на нескольких носителях;
файлы журналов транзакций хранят информацию для восстановления БД. Кроме того, могут создаваться дополнительные группы файлов для размещения пользовательских данных.
Рис. 6.4 Типы файлов, используемых для хранения баз данных
Журнал транзакций представляет собой рабочую область, в которую SQL Server записывает информацию до и после выполнения транзакций. Эта информация может использоваться для отмены выполненной транзакции или для восстановления БД. Журнал транзакций размещается в отдельном файле, создаваемом автоматически при создании базы данных.
При добавлении данных файлы базы данных и журнала транзакций расширяются автоматически.
Для хранения данных используются таблицы, размещаемые в базах данных. В Microsoft SQL Server базы данных делят на два типа — системные и пользовательские. В системных базах данных размещаются метаданные, используемые для управления системой. При инсталляции Microsoft SQL Server создаются следующие системные базы данных: master, model, tempdb и msdb.
Системная база данных master обеспечивает управление пользовательскими базами данных и работу MS SQL Server. Она содержит системный каталог, или словарь данных, насчитывающий 13 системных таблиц. Названия таблиц и характеристика содержащихся в них данных приведены на рис. 6.5. Ввиду важности этой базы данных рекомендуется иметь ее архив, отражающий самое последнее состояние.
В состав системного каталога входят следующие системные таблицы: syscharsets, sysconfigures, syscurconfig, sysdatabases, sysdevices, syslanguages, syslocks, syslogin, sysmessages, sysprocesses, sysremotelogins, sysservers, sysusages.
Хранящиеся в таблицах данные:
учетные записи пользователей;
сведения о текущих процессах;
сообщения о системных ошибках;
сведения о базах данных на сервере;
выделенные размеры баз данных;
сведения об активных блокировках;
сведения о доступных устройствах баз данных и резервных;
процедуры системного администрирования.
Рис. 6.5 Содержимое системной базы данных master
Системная база данных model представляет собой шаблон для баз данных, создаваемых на текущем сервере. Она содержит системные таблицы, необходимые каждой пользовательской базе данных. В базу данных model помещают объекты, которые должны присутствовать в создаваемых базах данных (обычные такие объекты приведены на рис. 6.6).
типы данных, определяемые пользователями;
правила проверки ввода;
значения по умолчанию;
хранимые процедуры;
информация о пользователях, которым разрешается доступ к базам данных;
разрешения, записываемые по умолчанию в учетные записи гостей.
Рис. 6.6 Содержимое системной базы данных model
Системная база данных tempdb служит для размещения на диске различных временных объектов: таблиц, промежуточных результатов предложений группирования и упорядочения, курсоров и др. При разрыве отдельным пользователем соединения с SQL Server содержимое этой базы данных удаляется, кроме глобальных временных таблиц. При завершении работы с SQL Server всеми пользователями из этой базы удаляются все данные.
Системная база данных msdb содержит каталог баз данных (database catalog) и отдельные системные таблицы, описанные в табл. 6.1. База данных msdb используется для обеспечения работы планировщика — службы SQL Executive. Эта служба поддерживает репликацию, планирование задач и управление ошибочными ситуациями.
Таблица 6.1
Системные таблицы, содержащиеся в системной базе данных msdb
№ |
Название |
Объекты, информация о которых содержится в таблице |
1 |
sysalerts |
Определенные пользователем события |
2 |
sysoperators |
Операторы |
3 |
sysnotifications |
Связи операторов с событиями |
4 |
systask |
Определенные пользователем задачи и запускающие задачи события |
5 |
syshistory |
Хронология запуска событий и задач |
6 |
sysservermessages |
Сообщения серверу |
Каталог баз данных (database catalog) представляет собой совокупность 18 системных таблиц, которые имеются в каждой базе данных. Имена всех системных таблиц начинаются с приставки sys, например: sysalternates, syscolumns, syscomments. В них хранится информация о пользователях, триггерах и хранимых процедурах, таблицах, индексах в таблицах, правах доступа пользователей, типах данных, ограничениях, публикациях, репликациях и другая. Наименования системных таблиц мнемонически указывают на характер хранимой информации. Например, в системной таблице sysindexes содержатся данные об индексах.
Заметим, что информация о том, какие объекты находятся в базе данных, размещается в системной таблице sysobject, имеющейся в каждой базе данных.