Информация о каждой базе данных в SQL Server хранится в таблице sysdatabases базы данных master
Желательно подключаться к этой БД, когда создаешь новую БД
Объявление базы данных – это процесс указания имени и указания размера и расположения файлов
Размер, указанный для основного файла базы данных должен быть больше или равен размеру основного файла базы данных model
Во время создания базы данных, очень важно понимать, как SQL Server хранит данные, чтобы вы могли посчитать и указать количество дискового пространства для размещения базы данных. Во время создания баз учитывайте следующее:
- Все базы данных имеют основной файл данных, определяемый именем файла с расширением
.mdf, и один или более файлов журнала определяемый именем файла с расширением.ldf. База данных может также иметь вторичные файлы данных, которые определяются по имени файла с расширением.ndf. Файлы могут объединяться в группы, о чем мы поговорим в разделе 1.1.1. - Физические файлы имеют двойное именование – имя ОС и имя, которые вы можете использовать в операторах Transact-SQL (логическое имя, которое указывается в параметре NAME).
- Когда вы создаете базу данных, в нее копируется содержимое базы данных model, которая включает системные таблицы и может содержать пользовательские таблицы, созданные вами. Минимальный размер создаваемой базы данных должен быть равен или больше размера базы данных model.
- Сервер SQL хранит, читает и записывает данные блоками по 8кб, эти блоки называются страницами. База данных может хранить 128 страниц на мегабайт (1 мегабайт или 1048576 байт разделить 8 килобайт или 8192 байт). Все страницы хранятся в пространстве (экстенты). Пространство – это 8 последовательных страниц, или 64кб. Поэтому база данных имеет 16 пространств (экстентов) в мегабайте. Страницы и пространства это основа структуры данных физической базы
Сервер SQL использует два типа пространств(экстентов):
- Пространства, которые хранят страницы от двух и более объектов, называемые смешанными. Каждая таблицы начинается как смешанное пространство. Вы используете смешанное пространство главным образом для страниц, которые хранят пространство и содержат маленькие объекты.
- Пространства, которые имеют все 8 страниц выделенных одному объекту, называемый однородным пространством. Они используются, когда таблице или индексу надо более 64 кб пространства. Первое пространство (экстент) для каждого файла является смешанным и содержит страницы заголовка файла, следующие по три выделенные страницы. Сервер выделяет эти смешанные пространства, когда вы создаете основной файл данных и использует эти страницы для своих внутренних задач. Страница заголовка файла – содержит атрибуты файла, такие как имя базы данных, которая хранится в файле, файловая группа, минимальный размер, размер приращения. Это первая страница в каждом файле (Страница 0).
Нельзя удалять базу данных если она:
- Базу данных, которая открыта для чтения или записи любым пользователем, поэтому при удалении вы также не должны быть к ней подключены. Лучше всего подключиться к базе данных
master; - Базу данных, которая опубликовала любую свою таблицу как часть
репликацииSQL Server - Системная
Имя базы данных может иметь не более 128 символов
Пример
CREATE DATABASE TestDatabase
ON
(
NAME = TestDatabase_data,
FILENAME = 'c:\data\test.mdf',
SIZE = 10MB,
MAXSIZE = 100GB,
FILEGROWTH = 5MB
)
LOG ON
(
NAME = 'TestDatabase_log',
FILENAME = 'c:\data\test.ldf',
SIZE = 5MB,
MAXSIZE = 10GB,
FILEGROWTH = 5%
)Файловые группы
Если ваш сервер содержит несколько дисков, вы можете расположить определенные объекты и файлы на индивидуальный диск, группируя ваши файлы базы данных в файловые группы. Файловая группа – это несколько файлов, сгруппированные под определенным именем
Сервер SQL включает одну файловую группу, которая по умолчанию называется как PRIMARY. Вы можете создавать дополнительные файловые группы во время, и после создания базы данных
Сервер SQL поддерживает следующие два типа файловых групп:
- Основанная файловая группа, которая содержит системные таблицы и основные файлы данных.
- Файловые группы определенные пользователем, которые содержат любые файловые группы, которые указаны с использованием ключевого слова FILEGROUP. Когда вы создаете базу данных, основная файловая группа автоматически становиться группой по умолчанию
Вы можете создать новые файловые группы и в них размещать пользовательские таблицы. Основная файловая группа может быть расположена на одном физическом диске, а группа с пользовательскими таблицами может быть на другом диске. Таким образом, два диска могут читать данные параллельно. Только это уже позволит повысить производительность, ведь при обращении к пользовательским данных очень часто необходимо обратиться и к системным таблицам. Это происходит незаметно для пользователя, но если чтение и запись будет происходить параллельно, то сервер сможет обрабатывать больше запросов со стороны пользователя. В наше время жесткий диск является наиболее слабым местом (это единственное устройство, не считая съемных носителей, которое остается механическим, а не электронным
CREATE DATABASE TestDatabase
ON PRIMARY
(
NAME = tdb1_dat,
FILENAME = 'c:\data\tdb1_data.mdf',
SIZE = 10MB,
MAXSIZE = 100MB,
FILEGROWTH = 10MB
),
(
NAME = tdb2_dat,
FILENAME = 'd:\data\tb2_data.ndf',
SIZE = 10MB,
MAXSIZE = 100MB,
FILEGROWTH = 10MB
),
FILEGROUP DBGroup1
(
NAME = tdb_group1_dat,
FILENAME = 'e:\data\tdb_gr1_data.ndf',
SIZE = 10MB,
FILEGROWTH = 5%
),
(
NAME = tdb_group2_dat,
FILENAME = 'f:\data\tdb_gr2_data.ndf',
SIZE = 10MB,
FILEGROWTH = 5%
),
(
NAME = tdb_group3_dat,
FILENAME = 'g:\data\tdb_gr3_data.ndf',
SIZE = 10MB,
FILEGROWTH = 5%
)Сопоставление
CREATE DATABASE TestDatabase2
ON
(
NAME = TestDatabase_data,
FILENAME = 'c:\data\test.mdf',
SIZE = 10MB,
MAXSIZE = 100GB,
FILEGROWTH = 5MB
)
LOG ON
(
NAME = 'TestDatabase_log',
FILENAME = 'c:\data\test.ldf',
SIZE = 5MB,
MAXSIZE = 10GB,
FILEGROWTH = 5%
)
COLLATE Cyrillic_General_CI_AS