Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Программирование приложений баз данных с использованием СУБД MS SQL Server. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
08.09.2026
Размер:
2 Мб
Скачать
☆
Слева от редактора запросов расположено окно обозревателя объектов, позволяющее осуществлять навигацию по базе данных: просматривать доступные объекты, выполнять запросы на про­смотр содержимого таблиц, создавать скрипты для объектов и т. д. (см. рис. 3).
База данных, для которой выполняется запрос, либо выбирает­ся из выпадающего списка в левой верхней части окна (
см. рис. 3),
либо устанавливается командой Use <имя базы данных>, например:
Use BookLibrary.
Для изменения параметров сервера с помощью Management Studio необходимо выбрать нужный сервер, в контекстном меню
выбрать команду Свойства и в появившемся диалоговом окне вы­полнить конфигурирование сервера (рис. 4).
Рис. 4
10
На вкладке Общие отображаются основные сведения о систе-
ме: версия операционной системы, объем памяти, количество про­цессоров и др., а также параметры запуска служб сервера.
Вкладка Память позволяет управлять выделением памяти для
выполнения действий MS SQL Server: либо динамическое управле­ние памятью, либо установка фиксированного размера.
Вкладка Процессоры позволяет управлять тем, на каких про
-
цессорах можно выполнять запросы SQL.
С помощью вкладки Безопасность определяется тип ау тенти -
фикации пользователей, также определяются параметры аудита доступа к серверу. Можно настроить сервер на использование опре­деленной учетной записи, под которой будет запускаться служба
MSSQLServer.
Вкладка Соединения позволяет конфигурировать клиентские
подключения к серверу. Если параметр равен 0, то разрешается под- ключение максимального
количества пользователей – 32 767 под-
ключений.
С помощью вкладки Параметры базы данных указываются
настройки вновь создаваемых баз данных: параметры индексов и работы с устройствами резервного копирования, время восста­новления базы данных.
Вкладка Дополнительно содержит некоторые общие установ-
ки сервера. Например, определяется язык по умолчанию для сооб­щений сервера или регулируется поддержка 2000 года,
которая оп-
ределяет, как будут интерпретироваться две последние цифры года.
Вкладка Разрешения позволяет управлять именами входа
и ролями, а также управлять правами на выполнение действий в MS
SQL Server.
1.3.3. Мастер импорта и экспорта данных
Мастер импорта и экспорта SQL Server может копировать дан­ные из любого источника, для которого существует управляемый поставщик данных .NET Framework или
собственный поставщик данных OLE DB, а также в любой такой источник (рис. 5). Доступ­ны поставщики для следующих источников данных:
SQL Server; неструктурированные файлы;
11
Microsoft Office Access; Microsoft Office Excel.
Рис. 5
12
2. БАЗА ДАННЫХ И ЕЕ ОБЪЕКТЫ
2.1. Физическая структура базы данных
Основной структурой хранения данных является база данных. Физически база данных представляет собой набор файлов на диске, причем существует два типа файлов базы данных:
Файлы данных, предназначенные для хранения информа- ции, находящейся в таблицах, а также индексов, хранимых проце­дур, триггеров, пользовательских типов данных и других объектов базы данных.
Файлы
журнала транзакций, куда записывается информа-
ция о ходе выполнения транзакций.
Любая база данных должна содержать как минимум один файл данных и один файл журнала транзакций. При необходимости можно добавлять новые файлы обоих типов. Если компьютер имеет несколько физических дисков, то для повышения производительно­сти рекомендуется каждый файл располагать на отдельном
диске.
Файлы данных, в свою очередь, тоже бывают двух типов (рис. 6):
Основной файл (primary file). Каждая база данных может иметь только один главный файл. Он предназначен для хранения системных таблиц, информации о структуре базы данных, создан­ных в ней объектах, параметрах дополнительных файлов. Также в нем могут находиться и пользовательские данные. По
умолчанию
этот файл имеет расширение mdf.
Вторичный или дополнительный файл (secondary file). База данных может содержать несколько дополнительных файлов дан­ных или не содержать их вообще. В них могут храниться только пользовательские данные. Дополнительные файлы обычно созда­ются с целью распределения данных на множестве физических дисков для, как уже упоминалось, повышения производительности. По умолчанию эти файлы имеют расширение ndf.
Файлы журнала транзакций могут быть только одного типа, служащего для хранения журнала транзакций. Для ускорения рабо­ты можно использовать несколько журналов транзакций, располо­женных на разных дисках. По умолчанию, файлы журнала транзак­ций имеют расширение ldf.
13
Рис. 6
Любой файл идентифицируется по двум именам: OS File Name (физическое имя) – имя файла на диске. Не-
обходимо для применения функций операционной системы по ра­боте с файлами;
Logical File Name (логическое имя) – имя, которое приме-
няется внутри СУБД MS SQL Server для ссылки на соответствую­щий файл.
Файлы данных объединяются в группы с целью сохранения
данных
таблиц и даже отдельных столбцов в определенных файлах. По умолчанию изначально в базе данных создается одна-един­ственная группа PRIMARY и все данные хранятся в этой группе. Для объединения дополнительных файлов администратор может создать одну или несколько пользовательских групп. Для некото­рой группы файлов может быть установлен режим «только для чте-
», что ускорит операции обращения к данным, так как надоб-
ния ность в ведении журнала транзакций отпадает. Следует отметить также, что СУБД при хранении данных в группе файлов равномер­но распределяет эти данные между всеми файлами в группе, т. е.
14
данные записываются во все файлы параллельно. Это дает в неко­торых случаях весьма значительное повышение производительно­сти операций ввода-вывода, так как данные одной таблицы могут считываться параллельно из нескольких файлов, расположенных на разных дисках.
Данные таблиц в файле хранятся в наборе страниц данных,
которые имеют размер 8 КБ. Каждая страница имеет
заголовок, ко­торый содержит идентификатор владеющей данной страницей таб­лицы и указатели на следующую и предыдущую страницы в свя­занном списке. Непосредственно после заголовка располагаются данные столбцов таблицы. Каждая страница применяется для хра­нения строк только одной таблицы, для чего она разбивается на один или более блоков (слотов). Каждый слот
используется для хранения только одной строки. Размер слота, следовательно, и ко­личество их на странице зависят от размера соответствующей стро­ки. Размер слота в ходе работы с таблицей может меняться, если в таблице используются типы данных переменной длины. В конце страницы расположена таблица смещений слотов; остальное про­странство страницы занято строками
данных. Помимо данных таб­лиц в страницах может храниться служебная информация – индек­сы, хранимые процедуры, триггеры, пользовательские типы данных и т. д.
Минимальным объемом памяти, который выделяется любому объекту базы данных, является экстент – группа из восьми страниц. Экстент, в зависимости от типа (uniform или mixed), может содер­жать страницы, принадлежащие либо одному
объекту, либо разным.
2.2. Таблицы и типы данных
Таблицы – это единственный объект базы данных, используе­мый для хранения пользовательских данных. С точки зрения поль­зователя, таблица представляет собой двумерный массив, каждая строка которого представляет собой экземпляр описываемого в таб­лице типа объекта, а столбцы – это атрибуты объекта. Основопола­гающей характеристикой столбца является тип данных.
MS SQL Server поддерживает все основные простые
типы дан-
ных, используемые в современных языках программирования.
15
В версии MS SQL Server 2008 были добавлены несколько новых типов, а некоторые перестали рекомендоваться к использованию.
Таблица 1
Тип данных Описание
Целочисленные данные (целые числа) от –2^63 (–9 223 372
bigint
integer
smallint
tinyint
bit
numeric (p, s) или decimal (p, s)
money
float
real
datetime
036 854 775 808) до 2^63 – 1 (9 223 372 036 854 775 807).
Размер хранения составляет 8 байт Целочисленные данные (целые числа) от –2^31 (–2 147 483 648)
до 2^31 – 1 (2 147 483 647).
Размер хранения составляет 4 байта Целочисленные данные от –32 768 до 32 767. Размер хране-
ния составляет 2 байта Целочисленные данные от 0 до 255. Размер занимаемой памяти –
1 байт Целочисленные данные со значением 1 либо 0.
Размер занимаемой памяти – 1 бит Данные с фиксированной точностью и численным масштабом
от –10^38 + 1 до 10^38 – 1. Переменная p указывает точность и может принимать значения от 1 до 38. Переменная s указы­вает масштаб, она может принимать значения от 0 до p.
Размер хранения составляет 19 байт Значения денежных данных от (–2^63/10 000) (–922 337 203
685 477,5808) до (2^63 – 1)/10 000 (922 337 203 685 477,5807) с точностью до десятитысячной доли денежной единицы. Раз­мер хранения составляет 8 байт
Числовые данные с плавающей запятой от –1,79E +308 до 1,79E+308
Размер хранения составляет 8 байт Числовые данные с плавающей точностью от –3,40E+38
до 3,40E+38.
Размер хранения составляет 4 байта Данные даты и времени от 1 января 1753 г. по 31 декабря 9999 г.
с точностью до одной трехсотой секунды или 3,33 миллисе­кунды. Значения округляются с шагом 0,000, 0,003 или 0,007 миллисекунды. Хранятся как два 4-байтовых целочисленных значения. В первых 4 байтах хранится количество дней до или после 01.01.1900. Базовая дата – это эталонная дата сис-
16
Тип данных Описание
темы. Значения для datetime ранее 1 января 1753 г. запреще­ны. В других 4 байтах хранится время дня в миллисекундах после полуночи. Допустимый диапазон секунд – от 0 до 59. Пример
ГГГГ-ММ-ДД чч:мм:сс 1947-08-15 03:33:20
Это устаревший тип данных, который лучше не использовать Данные даты и времени от 1 января 0001 г. по 31 декабря 9999 г.
Date
Применяется, если нужна только дата. Размер – 3 байта. Пример
ГГГГ-ММ-ДД 1947-08-15
Время суток от 00:00:00 до 23:59:59 с точностью до заданной доли секунды. Размер – от 3 до 5 байтов. Величина n может принимать значения от 0 (т. е. значения времени задаются
Time[(n)]
с точностью до секунды) до 7 (значения времени задаются с точностью до 100 наносекунд) Пример
чч:мм:сс.ddd 03:23:20.554
Новый тип данных, поддерживает точность до 0,1 мс. Размер – от 6 до 8 байтов.
datetime2[(n)]
Пример
ГГГГ-ММ-ДД чч:мм:сс.ddddddd 1947-08-15 03:23:20.5542114
char(n)
varchar(n)
text
Символьные данные (не Юникод) постоянной длины с мак­симальной длиной 8 000 символов
Символьные данные (не Юникод) переменной длины с мак­симальной длиной от 1 до 8000 символов
Данные (не Юникод) переменной длины с максимальной дли­ной до 2 Гб
Символьные данные (Юникод) постоянной длины с макси-
nchar(n)
мальной длиной 4000 символов. Размер занимаемой памяти в байтах – количество введенных символов, умноженное на два
Символьные данные (Юникод) переменной длины с макси-
nvarchar(n)
мальной длиной от 1 до 4000 символов. Размер занимаемой памяти в байтах – количество введенных символов, умно­женное на два
Данные (Юникод) переменной длины с максимальной длиной
ntext
до 2 Гб. Размер занимаемой памяти в байтах равен количест­ву введенных символов, умноженному на два
Данные в Юникоде постоянной длины n знаков, значение n
Nchar(n)
должно быть в диапазоне от 1 до 4000. Занимаемый размер – 2n байт
Двоичные данные постоянной длины с максимальной длиной
binary(n)
8000 байт. Размер занимаемой памяти не изменяется, его длина в байтах заявлена в типе
17
Продолжение табл. 1
Окончание табл. 1
Тип данных Описание
Двоичные данные переменной длины с максимальной длиной
varbinary(n)
image
uniqueidentifier
IDENTITY [(s, i)]
8 000 байт. Размер занимаемой памяти изменяется. Он равен длине введенного значения в байтах
Двоичные данные переменной длины с максимальной длиной 2Гб
Глобальный уникальный идентификатор (GUID). Размер за­нимаемой памяти – 16 байт
Это свойство автонумерации столбца данных, где содержатся данные целочисленного типа. В таблице может содержаться только один столбец IDENTITY. Если указать начальное зна­чение и значение шага, столбец будет невозможно обновить.
s (seed) = начальное значение i(increment) = значение шага
Кроме того, на основе системных типов данных пользователь
может создавать свои собственные.
2.3. Создание таблицы
Для создания таблицы необходима схема, в которой будет соз­даваться таблица. Схема аналогична пространству имен во многих языках программирования, но у схем может быть только один уро­вень, т. е. схемы не могут размещаться в
других схемах. В любой базе данных по умолчанию создаются три схемы: dbo, sys и informa­tion_schema. Схема dbo – это схема по умолчанию для создания но­вых пользовательских объектов, две остальные используются разны­ми системными объектами. Схемы создаются с помощью команды
Create schema <имя схемы>
Таблица же создается следующей инструкцией:
Сreate table [<имя базы данных>.][<имя схемы>.]<имя
таблицы>
({<определение столбца>|<ограничения для всей таблицы>}[,…n]) [on<имя группы файлов>]
Определение столбца задается с помощью следующей кон­струкции:
<имя столбца><тип данных> [<ограничения, накладываемые на столбец>] [default<значение по умолчанию>] [identity(seed, incre-
ment)>]
Имена таблиц и столбцов должны начинаться с буквы или зна-
ка подчеркивания, последующие символы могут быть буквами,
18
цифрами, знаками подчеркивания, а также символами $, @ или #. Можно задать имя, не удовлетворяющее этому правилу, но тогда оно должно находиться в квадратных скобках.
Приведем пример создания таблицы. Вначале создадим новую схему. Схему можно не создавать,
тогда по умолчанию будет выбрана схема dbo.
Create schema Hr
Затем создается сама таблица, для ее размещения в памяти
выбрана
группа файлов SECONDARY.
create table Hr. Employeed (id int primary key, name nvarchar(50) not null, price numeric(12,2), birthday date, [phone number] varchar(15), constraint constr1 check(price>0)) on [SECONDARY]
2.4. Представления (Views)
Представления являются виртуальными таблицами, которые отображают данные, хранящиеся в других таблицах. Содержимое этих виртуальных таблиц генерируется динамически в результате выполнения запроса Select. Работа с представлениями для пользо­вателя практически ничем не отличается от работы с обычными таблицами. Обычно они создаются по соображениям безопасности, когда необходимо скрыть от пользователей, не обладающих доста­точными
правами, содержимое некоторых столбцов базовой табли-
цы. Создается представление следующей инструкцией:
create view [<имя схемы>.]<имя представления>as<оператор se­lect> [with check option]
Задание заключительной опции (with check option) гарантиру­ет, что для строк представления не будет разрешено выполнение изменений, которые могут привести к исчезновению строки из представления.
Изменять данные в представлении можно только при выпол­нении некоторых правил,
в частности, модификация должна ссылаться только на одну таблицу, а столбцы в представлении должны непосредственно ссылаться на столбцы в таблице. Для представления можно создавать индекс, при этом сервер выполняет инструкцию Select, физически сохраняет результирующий набор и затем строит индекс. Изменение любой таблицы, на которой оп­ределено представление, заставляет сервер обновлять сохраненный физический
набор и поддерживать индекс, т. е. индексированное
19
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]