Лабораторная работа № 2

Создание и заполнение базы данных

Цель работы:

Освоить методы создания, изменения и удаления базы данных, познакомиться с настройками баз данных и научиться правильно задавать их для создаваемых объектов.

Краткие теоретические сведения:

Для создания базы данных в SQL Server используется несколько методов:

Мастер создания баз данных (Database Creation Wizard).

Утилита SQL Server Enterprise Manager.

Оператор CREATE DATABASE.

При создании база данных, как и любая другая информация, сохраняется на диске в виде файлов: определяется один файл под данные и системные таблицы и еще один под журнал транзакций.

Для использования оператора CREATE DATABASE необходимо запустить Query Analyzer. Оператор CREATE DATABASE имеет следующий синтаксис:

CREATE DATABASE имя базы данных

[ON {[PRIMARY]

(NAME = логическое_имя,

FILENAME = ’физическоеимя’

[, size = размер]

[, MAXSIZE = максимальный_размер | UNLIMITED]

[, FILEGROWTH = инкрементувеличенияфайлов])

}[,...n]

[LOG ON

{(NAME = логическоеимя,

FILENAME = ’физическоеимя’

[, SIZE = размер | UNLIMITED]

[, MAXSIZE = максимальный_размер | UNLIMITED]

[, FILEGROWTH= инкремент увеличения файлов])}

[,-n]

[COLLATE способ_сортировки]

В SQL Server для создания новой базы данных достаточно указать всего один параметр NAME, определяющий логическое имя базы данных. Но на практике рекомендуется использовать следующий набор параметров: для файлов данных — NAME, FILENAME, SIZE, а также — FILENAME и SIZE — для файлов журнала транзакций. Параметры используемые в синтаксисе оператора:

имя_базы_данных. Определяет общее название базы данных. ON PRIMARY. Задает группу файлов, к которой относится файл базы данных. По умолчанию используется группа файлов PRIMARY.

NAME. Определяет логическое имя для физического файла базы данных на жестком диске.

FILENAME. Это адрес и имя файла, который содержит данные базы данных на жестком диске. Обязательно располагается на локальном жестком диске.

SIZE. Определяет размер файла базы данных. Вводимое значение определяется как в мегабайтах, так и в килобайтах. Для указания размерности добавляют после введенного числа МВ или КВ соответственно.

MAXSIZE. Определяет максимальный размер файла, до которого может увеличиваться до тех пор, пока не останется свободного места на жестком диске.

FILEGROWTH. Задает инкремент автоматического увеличения файла базы данных. Значение этого параметра не превышает параметра MAXSIZE.

LOG ON. Задает расположение файла журнала транзакций и его размер.

COLLATE. Определяет способ сортировки в базе данных.

Для создания базы данных в программе необходимо выполнить следующие действия:

Запустить утилиту Enterprise Manager, выбрав ПУСК — Программы — Microsoft SQL Server — Enterprise Manager.

Подключится к необходимому экземпляру SQL Server.

Открыть папку Databases.

Щелкнуть правой кнопкой на значке Databases или на свободном пространстве правой панели и выбрать в контекстном меню команду New Database (Создать базу данных).

На экране появится диалоговое окно Databases Properties (Свойства базы данных) с открытой вкладкой General (Общие). На ней указать название будущей базы данных. После перейти на вкладку Data Files (Файлы данных). Файл данных..._ Data имеет по умолчанию размер 1 Мбайт и расположен в папке C:Program FilesMicrosoft SQL ServerMSSQLData. Автоматически выставляется опция Automatically Grow File (Автоматическое увеличение файла), а в поле File growth (Увеличение файла) выставлено определенное значение. Кроме того, на максимальный размер файла не наложено жесткое ограничение Unrestricted File Growth (Неограниченное увеличение файла).

Чтобы изменить заданные значения параметров, необходимо щелкнуть в соответствующем поле и ввести собственные величины. Для добавления в базу данных другого файла необходимо перейти в следующую графу списка File Name (Имя файла) и выставить для нового файла свои параметры.

Перейти на вкладку Transaction Log (Журнал транзакций). Имя для данных журнала транзакций создается автоматически на основе имени базы данных (... _Log).

После изменения всех параметров необходимо щелкнуть по кнопке ОК, появится диалоговое окно, на котором отображены созданные ранее базы данных. Если в нем не отображается только что созданная БД, то необходимо щелкнуть правой кнопкой на папке Database и выбрать команду Refresh (Обновить).

Сбор информации о базе данных выполняется несколькими независимыми способами. Как и в предыдущем случае, эта операция выполняется с помощью Query Analyzer или Enterprise Manager.

Для сбора сведений об отдельной базе данных или всех базах данных системы используется системная хранимая процедура sp helpdb (утилита Query Analyzer). Если при запуске этой процедуры не указать имя базы данных, то будут выведены сведения о всех созданных в системе базах данных.

Для сбора сведений о базе данных также используется программа Enterprise Manager. Запустив ее, нужно открыть папку Database. Дважды щелкнув на базе данных, сведения о которой необходимо отобразить на экране, на правой панели отобразятся разделы, по которым сгруппированы сведения. Щелкая на левой панели базы данных, на правой панели будут отображаться сведения о ней.

Чтобы модифицировать параметры по умолчанию и изменить размер базы данных, необходимо выполнить оператор ALTER DATABASE или обратиться к утилите Enterprise Manager.

Оператор ALTER DATABASE имеет следующий синтаксис: ALTER DATABASE имя_базы_данных [ADD FILE спецификация_ файла [,...п]

[ТО FILEGROUP имя группы файлов]

| ADD LOG FILE спецификация_ файла [,...п]

| REMOVE FILE логическое_имя | ADD FILEGROUP имя группы файлов j REMOVE FILEGROUP имя группы файлов I MODIFY FILE спецификация_ файла j MODIFY NAME = новое имя

I MODIFY FILEGROUP имя_группы_файлов, свойство_груп- пыфайлов

| SET доступ ,...n WITH завершение |COLLATE способсортировки }

Спецификацияфайла (NAME = логическое_имя,

FILENAME = ’физическоеимя’

[, SIZE = размер]

[,= максимальный_размер | UNLIMITED]

[, FILEGROWTH= инкремент_увеличения_файлов])

В этом коде:

имя_базы_данных. Имя базы данных, в которую добавляются (файл).

ADD FILE. Оператор добавления файла данных. спецификация_ файла. Включает все опции, достаточные для определения необходимого файла.

ТО FILEGROUP. Задает группу файлов, в которую добавляется текущий файл. Если таковая не определена, то файл по умолчанию добавляется в группу файлов Primary.

ADD LOG FILE. Добавляет новый файл журнала транзакций в базу данных.

REMOVE FILE. Удаляет файл из базы данных. Перед удалением файл необходимо освободить от данных. Для этого для файла выполняется оператор DBCC SHRINKFILE с параметром EMPTYFILE (см. ниже).

ADD FILEGROUP. Добавляет в базу данных группу файлов. Обязательно указывается имя группы файлов.

REMOVE FILEGROUR Удаляет группу файлов, а также все файлы, которые входят в ее состав, из базы данных. Удаляемые файлы необходимо предварительно очистить от данных. Для этого к ним применяется оператор с параметром EMPTYFILE (см. ниже).

MODIFY FILE. Позволяет изменять свойства файла, включая физическое имя, инкремент увеличения и максимальный размер. При изменении параметра MAXSIZE необходимо указывать значение больше текущего. Изменения вступают только после перезапуска SQL Server.

MODIFY NAME. Используется для переименования базы данных.

MODIFY FILEGROUP. Изменяет свойства группы файлов, включая параметры READONLY, READWRITE и DEFAULT.

SET. Задает параметры READONLY, READWRITE и DEFAULT для базы данных. Параметр завершение определяет момент перехода к исходному состоянию. Принимает два значения ROLLBACK ALTER n SECONDS и ROLLBACK IMMEDIATE.

COLLATE. Определяет тип сортировки в базе данных. В качестве значения указывает способ сортировки SQL Server. Если имя не указано, то задается порядок сортировки SQL Server по умолчанию.

Чтобы сжать базу данных, используют оператор, имеющий следующий синтаксис:

DBCC SHRINKDATABASE {

(имябазыданных [, процентсжатия]

[, {NOTRUNCATE | TRUNCATEONLY}])

}

В этом коде:

имя базы данных. Имя сжимаемой базы данных процент сжатия. Процентное значение свободного пространства после сжатия.

NOTRUNCATE. Место в базе данных освобождается за счет файлов данных. Параметр процент_сжатия игнорируется. По умолчанию освобожденное место отдается в распоряжение операционной системы.

TRUNCATEONLY. Все неиспользуемое место отдается в распоряжение системы. Параметр процент_сжатия игнорируется.

Отдельные файлы базы данных сжимаются с помощью оператора DBCC SHRINKFILE. Эта команда изменяет только отдельные файлы базы данных, а не все. Синтаксис этого оператора следующий: DBCC SHRINKFILE{

(имяфайла/идентификаторфайла {[,процент_сжатия]

| [, { EMPTYFILE | NOTRUNCATE | TRUNCATEONLY}])

}

При введении команды DBCC SHRINKFILE задают название файла либо его идентификатор. Идентификатор файла (задается параметром идентификатор_файла) определяется с помощью хранимой системной процедуры sp_helpdb. Параметр процент_сжатия, операторы NOTRUNCATE и TRUNCATEONLY выполняют те же функции, что и в команде DBCC SHRINKDATABASE. Параметр EMPTYFILE интересен тем, что перераспределяет данные из текущего файла данных в другие файлы базы данных этой же группы файлов. После перемещения всех страниц с данными текущий файл данных приобретает статус пустого (empty). Данные в нем впоследствии не сохраняются. Этот параметр часто используется перед выполнением оператора REMOVE FILE и REMOVE FILEGROUP в команде ALTER DATABASE.

Для переименования базы данных выполняют системную хранимую процедуру sprenamedb. Для выполнения хранимой процедуры необходимо открыть базу данных master (USE master).

EXEC sp renamedb ‘старое имя’, ‘новое имя’

Те же операции выполняются и с помощью Enterprise Manager. Для изменения базы данных выполняют следующие действия.

Запустите SQL Server Enterprise Manager.

Откройте папку Databases, выделите необходимую базу данных, щелкните на ней правой кнопкой мыши и выберите в контекстном меню команду Properties. На экране появится диалоговое окно свойств базы данных.

На вкладке Data Files щелкните на пустой строке и введите имя нового файла (например, имя_базы_данныхОа1а2).

В столбце Location введите расположение нового файла: С: Program FilesMicrosoft SQL ServerMSSQLData имя_базы_дан- HbixData2.ndf.

Таким же образом добавьте журнал транзакций, увеличивая или сжимая файл.

Добавив все необходимые файлы, щелкните на кнопке ОК.

Чтобы проверить правильность выполненных операций, щелкните на левой панели окна Enterprise Manager на измененной базе данных. На правой панели взгляните на раздел Space Allocation.

Для удаления базы данных необходимо воспользоваться оператором DROP DATABASE (необходимо находиться в базе данных master)

DROP DATABASE имя базы данных, имя_базы_данных2...

Этот оператор позволяет одновременно удалять несколько баз данных. Для удаления базы данных часто используется и Enterprise Manager:

Запустите SQL Server Enterprise Manager. Откройте папку Databases.

Щелкните правой кнопкой мыши на удаляемой базе данных и выберите в контекстном меню Delete (удалить).

В диалоговом окне подтверждения операции удаления щелкните на кнопке Yes (Да).

Задание:

Создайте базу данных Basa со следующими характеристиками:

  • • содержит два файла данных BasaDatal и BasaData2; начальный размер каждого файла — ЗМбайта, максимальный размер — 20 байт, инкремент увеличения — 2 Мбайта;
  • • содержит два файла журнала транзакций BasaLogl и BasaLog2; начальный размер каждого файла — 1 Мбайт, максимальный размер — 5 Мбайт;

Добавьте в базу данных еще один файл данных — BasaData3 со всеми параметрами по умолчанию.

Сожмите базу данных на 20%.

Очистите файл BasaLog2.

Удалите файл BasaLog2.

Переименуйте базу данных в TreeBasa.

Удалите базу данных.

Контрольные вопросы

  • 1. Какие методы используются для создания базы данных?
  • 2. При создании базы данных какие файлы определяются на диске?
  • 3. Назовите расширение этих файлов.
  • 4. Какая информация хранится в этих файлах?
  • 5. Какой код используется для удаления базы данных?
  • 6. Назовите адрес папки, где располагаются файлы базы данных?
  • 7. Какой параметр отвечает за инкремент увеличения файла?
  • 8. Может ли значение параметра MAXSIZE быть больше текущего размера базы данных?
  • 9. Назовите операторы, позволяющие сжать базу данных и отдельные файлы?
 
Посмотреть оригинал
< Пред   СОДЕРЖАНИЕ   ОРИГИНАЛ     След >