Содержание

Создание базы данных — SQL Server

  • Чтение занимает 3 мин

В этой статье

Применимо к:Applies to: SQL ServerSQL Server (все поддерживаемые версии) SQL ServerSQL Server (all supported versions) Применимо к:Applies to: SQL ServerSQL Server (все поддерживаемые версии) SQL ServerSQL Server (all supported versions)

В этом разделе описывается создание базы данных в SQL ServerSQL Server с помощью SQL Server Management StudioSQL Server Management Studio или Transact-SQLTransact-SQL.This topic describes how to create a database in SQL ServerSQL Server by using SQL Server Management StudioSQL Server Management Studio or Transact-SQLTransact-SQL.

В этом разделеIn This Topic

Перед началомBefore You Begin

ОграниченияLimitations and Restrictions

  • В экземпляре SQL ServerSQL Serverможет быть задано не более 32 767 баз данных.A maximum of 32,767 databases can be specified on an instance of SQL ServerSQL Server.

Предварительные требованияPrerequisites

  • Инструкция CREATE DATABASE должна выполняться в режиме автоматической фиксации (режим управления транзакциями по умолчанию) и не может применяться в явной или неявной транзакции.The CREATE DATABASE statement must run in autocommit mode (the default transaction management mode) and is not allowed in an explicit or implicit transaction.

РекомендацииRecommendations

  • Резервную копию базы данных master необходимо создавать каждый раз при создании, изменении или удалении пользовательской базы данных.The master database should be backed up whenever a user database is created, modified, or dropped.

  • При создании базы данных файлы данных следует делать как можно большего размера, в соответствии с максимальным предполагаемым объемом данных в базе данных.When you create a database, make the data files as large as possible based on the maximum amount of data you expect in the database.

безопасностьSecurity

PermissionsPermissions

Требуется разрешение CREATE DATABASE в базе данных master или разрешение CREATE ANY DATABASE или ALTER ANY DATABASE.Requires CREATE DATABASE permission in the master database, or requires CREATE ANY DATABASE, or ALTER ANY DATABASE permission.

В целях сохранения управления над использованием диска в экземпляре SQL ServerSQL Serverразрешение на создание баз данных обычно предоставляется небольшому числу учетных записей входа.To maintain control over disk use on an instance of SQL ServerSQL Server, permission to create databases is typically limited to a few login accounts.

Использование среды SQL Server Management StudioUsing SQL Server Management Studio

Создание базы данныхTo create a database
  1. В обозревателе объектов подключитесь к экземпляру компонента Компонент SQL Server Database EngineSQL Server Database Engine и разверните его. In Object Explorer, connect to an instance of the Компонент SQL Server Database EngineSQL Server Database Engine and then expand that instance.

  2. Щелкните правой кнопкой мыши элемент Базы данных, а затем выберите пункт Создать базу данных.Right-click Databases, and then click New Database.

  3. В поле Новая база данных введите имя базы данных.In New Database, enter a database name.

  4. Чтобы создать базу данных, приняв все значения по умолчанию, нажмите кнопку ОК; иначе продолжайте выполнение следующих дополнительных шагов.To create the database by accepting all default values, click OK; otherwise, continue with the following optional steps.

  5. Чтобы изменить имя владельца, нажмите ( ) и выберите другого владельца.To change the owner name, click () to select another owner.

    Примечание

    Параметр Использовать полнотекстовое индексирование всегда установлен и недоступен (т. к. начиная с SQL Server 2008SQL Server 2008все пользовательские базы данных поддерживают полнотекстовый поиск).The Use full-text indexing option is always checked and dimmed because, beginning in SQL Server 2008SQL Server 2008, all user databases are full-text enabled.

  6. Чтобы изменить значения первичных данных по умолчанию и файлов журнала транзакций, щелкните соответствующую ячейку в сетке Файлы базы данных и введите новое значение.To change the default values of the primary data and transaction log files, in the Database files grid, click the appropriate cell and enter the new value. Дополнительные сведения см. в статье AДобавление файлов данных или журналов в базу данных.For more information, see Add Data or Log Files to a Database.

  7. Чтобы изменить параметры сортировки базы данных, выберите страницу Параметры и выберите из списка желаемые параметры сортировки. To change the collation of the database, select the Options page, and then select a collation from the list.

  8. Чтобы изменить модель восстановления, выберите страницу Параметры и модель восстановления из списка.To change the recovery model, select the Options page and select a recovery model from the list.

  9. Чтобы изменить параметры базы данных, выберите страницу Параметры и измените параметры базы данных.To change database options, select the

    Options page, and then modify the database options. Описание каждого параметра см. в статье Параметры ALTER DATABASE SET (Transact-SQL).For a description of each option, see ALTER DATABASE SET Options (Transact-SQL).

  10. Чтобы добавить новую файловую группу, перейдите на страницу Группы файлов .To add a new filegroup, click the Filegroups page. Нажмите Добавить и введите значения для файловой группы. Click Add and then enter the values for the filegroup.

  11. Чтобы добавить расширенное свойство в базу данных, выберите страницу Расширенные свойства .To add an extended property to the database, select the Extended Properties page.

    1. В столбце Имя введите имя расширенного свойства.In the Name column, enter a name for the extended property.

    2. В столбце Значение введите текст расширенного свойства.In the Value column, enter the extended property text. Например, введите одно или несколько предложений, которые описывают базу данных.For example, enter one or more statements that describe the database.

  12. Чтобы создать базу данных, нажмите кнопку ОК.To create the database, click OK.

Использование Transact-SQLUsing Transact-SQL

Создание базы данныхTo create a database
  1. Установите соединение с компонентом Компонент Database EngineDatabase Engine.

    Connect to the Компонент Database EngineDatabase Engine.

  2. На панели «Стандартная» нажмите Создать запрос.From the Standard bar, click New Query.

  3. Скопируйте следующий пример в окно запроса и нажмите кнопку Выполнить.Copy and paste the following example into the query window and click Execute. В этом примере создается база данных Sales.This example creates the database Sales. Ключевое слово PRIMARY не использовано, поэтому первый файл (Sales_dat) становится первичным файлом.Because the keyword PRIMARY is not used, the first file (Sales_dat) becomes the primary file. Поскольку в параметре SIZE для файла Sales_dat не заданы суффиксы MB и KB, используется значение MB и пространство выделяется в мегабайтах.Because neither MB nor KB is specified in the SIZE parameter for the

    Sales_dat file, it uses MB and is allocated in megabytes. Резервную копию базы данных Sales_log выделено в мегабайтах, потому что суффикс MB явно указан в параметре SIZE .The Sales_log file is allocated in megabytes because the MB suffix is explicitly stated in the SIZE parameter.

USE master ;  
GO  
CREATE DATABASE Sales  
ON   
( NAME = Sales_dat,  
    FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\DATA\saledat.mdf',  
    SIZE = 10,  
    MAXSIZE = 50,  
    FILEGROWTH = 5 )  
LOG ON  
( NAME = Sales_log,  
    FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\DATA\salelog.ldf',  
    SIZE = 5MB,  
    MAXSIZE = 25MB,  
    FILEGROWTH = 5MB ) ;  
GO  

Дополнительные примеры см. в статье CREATE DATABASE (SQL Server Transact-SQL).For more examples, see CREATE DATABASE (SQL Server Transact-SQL).

См. также:See Also

Database Files and Filegroups Database Files and Filegroups
Присоединение и отсоединение базы данных (SQL Server) Database Detach and Attach (SQL Server)
ALTER DATABASE (Transact-SQL) ALTER DATABASE (Transact-SQL)
Добавление файлов данных или журналов в базу данныхAdd Data or Log Files to a Database

Ничего не найдено для Obucheniest 715 Create Database In Ms Sql Server %23Chto Nuzhno Dlya Togo Chtoby Sozdat Bazu

Windows

Всем привет, в современном мире существует достаточно много программ для создания загрузочных USB накопителей,

Linux

Приветствую Вас на сайте Info-Comp. ru! В данном материале подробно рассмотрен процесс установки дистрибутива Linux

Другое

Недавно я себе приобрел бюджетный смартфон ZTE Blade V7 Lite, и сегодня мне бы

Microsoft SQL Server

Приветствую Вас на сайте Info-Comp.ru! Сегодня мы с Вами кратко рассмотрим доменно-ключевую нормальную форму

Linux

В этом материале мы рассмотрим новую стабильную версию дистрибутива Linux Debian 9 Stretch, поговорим

Linux

Всем привет! Материал сегодня будет посвящен рассмотрению процесса установки серверной операционной системы Linux Ubuntu

MS SQL Server — создание базы данных

База данных — это набор объектов, таких как таблица, представление, хранимая процедура, функция, триггер и т. Д.

В MS SQL Server доступны два типа баз данных.

  • Системные базы данных
  • Пользовательские базы данных

Системные базы данных

Системные базы данных создаются автоматически при установке MS SQL Server. Ниже приведен список системных баз данных —

  • Мастер
  • модель
  • MSDB
  • Tempdb
  • Ресурс (введен в версии 2005 года)
  • Распространение (это только для функции репликации)

Пользовательские базы данных

Пользовательские базы данных создаются пользователями (администраторами, разработчиками и тестировщиками, которые имеют доступ к созданию баз данных).

Следующие методы используются для создания пользовательской базы данных.

Способ 1. Использование сценария T-SQL или восстановление базы данных

Ниже приведен основной синтаксис для создания базы данных в MS SQL Server.

Create database <yourdatabasename>

ИЛИ ЖЕ

Restore Database <Your database name> from disk = '<Backup file location + file name>

пример

Чтобы создать базу данных с именем «Testdb», выполните следующий запрос.

Create database Testdb

ИЛИ ЖЕ

Restore database Testdb from disk = 'D:\Backup\Testdb_full_backup.bak'

Примечание. D: \ backup — это расположение файла резервной копии, а Testdb_full_backup.bak — имя файла резервной копии.

Способ 2 — Использование SQL Server Management Studio

Подключитесь к экземпляру SQL Server и щелкните правой кнопкой мыши папку базы данных. Нажмите на новую базу данных, и появится следующий экран.

Введите поле имени базы данных с именем вашей базы данных (например: для создания базы данных с именем ‘Testdb’) и нажмите OK. База данных testdb будет создана, как показано на следующем снимке.

Шаг 5. Создание базы данных и настройка подключения программы к SQL-серверу

Шаг 5. Создание базы данных и настройка подключения программы к SQL-серверу Пожалуйста, включите Javascript в браузере!

Шаг 5. Создание базы данных и настройка подключения программы к SQL-серверу

Чтобы создать базу данных на SQL-сервере и настроить подключение к ней, выполните следующие действия:

  1. В поле Имя SQL-сервера укажите имя компьютера (или его IP-адрес), на котором установлен SQL-сервер, и имя SQL-сервера, например, MYCOMPUTER\SQLEXPRESS.

    Нажав на кнопку Обзор, расположенную напротив поля Имя SQL-сервера, вы можете выбрать SQL-сервер в том сегменте сети, в котором расположен компьютер.

    В случае удаленного подключения к SQL-серверу необходимо убедиться, что на SQL-сервере включена поддержка TCP/IP в качестве клиентского протокола. Нужный вам SQL-сервер может отсутствовать в списке SQL-серверов, если на компьютере, на котором расположен SQL-сервер, не запущена служба браузера SQL-сервера.

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

    Предоставьте учетной записи, от имени которой запущен мастер установки, роль db_owner на уровне базы данных программы и право ALTER ANY LOGIN на уровне SQL-сервера. Право ALTER ANY LOGIN требуется мастеру установки, чтобы создать пользователей SQL-сервера, присвоить этим пользователям роли и выдать им права на использование базы данных. Роль db_owner обеспечивает набор прав, разрешающий выполнять все действия по настройке и обслуживанию базы данных, а также удалять базу данных.

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

    • базу данных, предварительно созданную администратором SQL-сервера;
    • базу данных, которая создается автоматически мастером установки программы.

    Если вы хотите использовать единую базу данных резервного хранилища и статистики для нескольких Серверов безопасности, имя SQL-сервера и имя базы данных SQL должны быть одинаковыми для всех Серверов безопасности. В этом случае при установке программы на втором и последующих Серверах безопасности укажите одинаковые значения в полях Имя SQL-сервера, Имя базы данных и Дополнительные параметры соединения для соединения с базой данных, созданной при установке программы на первом Сервере безопасности. Если вы не планируете использовать общую базу данных, вы можете указать собственные параметры соединения с базой данных SQL для каждого сервера, входящего в группу DAG.

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

  3. В поле Дополнительные параметры соединения укажите дополнительные параметры соединения с сервером базы данных резервного хранилища и статистики.

    Описание параметров соединения с сервером базы данных вы можете найти на сайте Microsoft по ссылке: параметры строки соединения.

    Пример:

    • Connection Timeout=30;Integrated Security=SSPI;MultiSubnetFailover=true

    Не рекомендуется указывать в поле Дополнительные параметры соединения параметры Data Source и Database, так как они определяются в полях Имя SQL-сервера и Имя базы данных.

  4. Для завершения настройки базы данных и перехода к следующему шагу мастера установки нажмите на кнопку Далее.

Kaspersky Security не обеспечивает канальное шифрование при передаче данных между сервером и базой данных SQL. В целях безопасности данных вам необходимо самостоятельно выполнить шифрование данных для передачи по каналам связи.

В начало

Transact-SQL, Создание и удаление базы данных

Управление базой данных

Большинство авторов, начинают рассматривать SQL, начиная с операторов получения данных из базы данных. Именно с этого начинается рассмотрение SQL-92, но у нас еще нет баз данных и не откуда брать данные. Мы же начнем с самого начала, т.е. с создания базы данных, создания таблиц и изменения их структуры. Когда у нас будет готова тестовая база данных, мы заполним ее данными и тогда уже научимся работать с этими данными.

Итак, в этой главе нам предстоит узнать:

  • Как создавать базу данных с помощью SQL запросов;
  • Как изменять параметры базы данных;
  • Как создавать таблицы;
  • Как изменять параметры таблицы.

Я рекомендую выполнять все задания, которые будут описаны в книге в этой главе, потому что созданная нами структура будет использоваться в последующих главах. Если вы хотите перейти к рассмотрению следующих глав, то рекомендую последовательно выполнить все сценарии из директории Chapter1 на компакт диске. Это позволит вам иметь готовую структуру базы данных, на которой можно будет тестировать запросы из следующих глав.

Большинство из описываемых в данной главе операторов SQL в равной степени будут работать на большинстве баз данных. Но в некоторых случаях могут быть отличие. Например, в MS Access нельзя создавать базу данных, потому что здесь база данных это файл, который создается с помощью одноименной программы. В других базах данных операторы создания баз данных и таблиц имеют точно такой же синтаксис, но может быть отличие в поддерживаемых параметрах из-за большего или меньшего количества возможностей.

Операторы по описанию объектов базы данных выделают в отдельный язык (подязык SQL) — DDL (Data Definition Language, Язык Объявления Данных). Именно этот язык будет рассматриваться в этой главе, ведь нам предстоит научиться описывать данные таблицы.

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

Информация о каждой базе данных в SQL Server хранится в таблице sysdatabases базы данных master. Поэтому желательно (но не обязательно) использовать базу данных master, во время создания базы. К тому же, после изменения любой пользовательской базы данных создавать резервную копию базы данных master. О резервном копировании и восстановлении мы поговорим в разделе 4.10. Объявление базы данных – это процесс указания имени и указания размера и расположения файлов.

В Transact-SQL для создания базы данных есть команда CREATE DATABASE. Эта команда может выполняться только с сервером SQL Server. При использовании базы данных MS Access команда не доступна, потому что базой данных является файл с расширением .mdb, который создается в программе Access и к которому мы подключены.

Сервер MS SQL Server может содержать несколько баз данных. Вы можете подключиться к любой из них (системной или тестовой, которые присутствуют в стандартной поставке) и создать новую базу данных, но желательно подключаться к базе данных master.

Синтаксис команды создания базы данных показан в листинге 1.1.

Листинг 1.1. Создание базы данных


CREATE DATABASE имя
[ ON 
    [< filespec > [ ,...n ] ] 
    [ , < filegroup > [ ,...n ] ] 
] 
[ LOG ON { < filespec > [ ,...n ] } ] 
[ COLLATE имя_раскладки ]
[ FOR LOAD | FOR ATTACH ] 

< filespec > ::= 
[ PRIMARY ]
( [ NAME = логическое_имя_файла , ] 
    FILENAME = 'имя_файла_в_ОС' 
    [ , SIZE = размер ] 
    [ , MAXSIZE = { максимальный_размер | UNLIMITED } ] 
    [ , FILEGROWTH = увеличение ] ) [ ,...n ]

< filegroup > ::= 
FILEGROUP файловая_группа < filespec > [ ,...n ]

Давайте разберем этот синтаксис подробно, чтобы в будущем вы могли читать подобные описания. Первая строка содержит имя команды и параметр:


CREATE DATABASE имя

В качестве параметра выступает имя создаваемой базы данных.

Если вы посмотрите на остальные параметры синтаксиса, то увидите, что все они находятся в квадратных скобках. Все, что в квадратных скобках – описывает не обязательные параметры. Получается, что минимальная команда создания базы выглядит как


CREATE DATABASE Имя

Имя в данном случае передается без каких-либо кавычек, если имя состоит из одного слова. Если имя должно быть из двух слов, то его необходимо оформить в квадратные кавычки:


CREATE DATABASE [Тестовая база]

Очень интересной является следующая строка:


[ FOR LOAD | FOR ATTACH ]

Здесь в квадратных скобках указано два значения, разделенных вертикальной чертой. Это значит, что эти значения являются не обязательными, а вертикальная черта соответствует слову «или», т.е. в запросе можно будет указывать или FOR LOAD, или FOR ATTACH, или вообще ничего. Оба параметра указывать нельзя.

В угловых скобках указываются имена секций. Например, в описании оператора CREATE DATABASE есть два указания на < filespec >. Эта секция может идти после ключевого слова ON и после LOG ON. Описание самой секции идет после:


< filespec > ::=

Не понятно? Попробуем еще раз. Описание оператора CREATE DATABASE выглядит так:


CREATE DATABASE имя
[ ON 
    [< filespec > [ ,...n ] ] 
    [ , < filegroup > [ ,...n ] ] 
] 
[ LOG ON { < filespec > [ ,...n ] } ] 
[ COLLATE имя_раскладки ]
[ FOR LOAD | FOR ATTACH ] 

Далее идут описания секций < filespec > и < filegroup >:


< filespec > ::= 
[ PRIMARY ]
( [ NAME = логическое_имя_файла , ] 
    FILENAME = 'имя_файла_в_ОС' 
    [ , SIZE = размер ] 
    [ , MAXSIZE = { максимальный_размер | UNLIMITED } ] 
    [ , FILEGROWTH = увеличение ] ) [ ,. ..n ]

и


< filegroup > ::= 
FILEGROUP файловая_группа < filespec > [ ,...n ]

Теперь, заменяем в описании CREATE DATABASE название секции < filespec > на саму секцию. Если вы имеете опыт программирования на одном из высокоуровневых языков, то в секциях вы уже наверно увидели аналогию с процедурами. Название секции < filespec > аналогично имени процедуры, а после < filespec > ::= идет сам код процедуры.

Следующая интересная запись:


[ < filespec > [ ,...n ] ]

Запись < filespec > — описание файла, а [ ,…n ] указывает на то, что возможно несколько описаний.

С помощью круглых скобок параметры объединяются в группу, например:


( [ NAME = логическое_имя_файла , ] 
    FILENAME = 'имя_файла_в_ОС' 
    [ , SIZE = размер ] 
    [ , MAXSIZE = { максимальный_размер | UNLIMITED } ] 
    [ , FILEGROWTH = увеличение ] ) [ ,...n ]

В данном случае в группу объединены параметры NAME, FILENAME, SIZE, MAXSIZE и FILEGROWTH. Все эти параметры описывают файл, поэтому и объединены в группу. Из всей группы только параметр FILENAME является обязательным. После круглых скобок идет снова можно увидеть [ ,…n ], значит может быть несколько описаний файлов (для каждого файла базы данных свое описание).

Параметр FILENAME интересен еще и тем, что его значение задается с помощью знака равенства, после которого идет текст в одинарных кавычках:


FILENAME = 'имя_файла_в_ОС'

Кавычки в данном случае указывают на их обязательное присутствие в SQL запросе. По наличию кавычек достаточно просто определить тип параметра. Если они присутствуют, то параметр строковый, иначе числовой. Например, параметр SIZE не содержит кавычек, а значит, он числовой:


SIZE = 'Размер'

На первый взгляд общий вид достаточно сложен, но здесь не так уж и много параметров. Давайте рассмотрим основные, а потом увидим их действия на практике:

  • PRIMARY. Этот параметр указывает файл в основной файловой группе. Эта файловая группа содержит все системные базы данных. Она также содержит все объекты, не назначенные другим файловым группам. Каждая база данных содержит один основной файл данных. Основной файл – это стартовая точка базы данных и указывает на место ее нахождения. Рекомендуемое файловое расширение для основного файла .mdf. Если вы не укажите этого параметра, первый файл списка описания будет использован как основной.
  • FILENAME. Этот параметр указывает имя и путь к файлу в операционной системе. Путь должен указывать на папку на сервере, где установлен SQL Server. Нельзя использовать сетевые диски с других компьютеров.
  • SIZE. Этот параметр указывает размер файла данных или журнала. Вы можете указать размер в мегабайтах MB (значение по умолчанию) или в килобайтах KB. Минимальный размер – 512KB для обоих файлов – журнала транзакций и файла данных. Размер, указанный для основного файла базы данных должен быть больше или равен размеру основного файла базы данных model. Мы уже говорили, что база model копируется во все новые базы данных, поэтому размер новой, не может быть меньше размера model, иначе копирование станет невозможным. Когда вы добавляете новый файл базы данных или журнала без указания размера – то сервер использует значение размера по умолчанию = 1МБ.
  • MAXSIZE. Этот параметр указывает максимальный размер, до которого файл может увеличиваться. Вы можете указать размер в мегабайтах MB (значение по умолчанию) или в килобайтах KB. Если вы не укажите максимальный размер, файл будет увеличиваться, пока диск не будет заполнен полностью.
  • FILEGROW. Этот параметр указывает размер приращения файла. Значение этого параметра для файла не может превышать значение MAXSIZE. Значение 0 указывает на запрет увеличения. Значение может быть указано в мегабайтах (по умолчанию), килобайтах или процентах. Значение по умолчанию, если этот параметр не указан — 10%, а минимальный размер – 64кб. Указанный размер округляется до ближайшего числа, кратному 64кб.
  • COLLATION. Этот параметр указывает значение по умолчанию для сопоставления в базе данных. Сопоставления (кодировка или раскладка) включают роли контролирующие использование символов для языка и алфавита.

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

  1. Все базы данных имеют основной файл данных, определяемый именем файла с расширением .mdf, и один или более файлов журнала определяемый именем файла с расширением .ldf. База данных может также иметь вторичные файлы данных, которые определяются по имени файла с расширением .ndf. Файлы могут объединяться в группы, о чем мы поговорим в разделе 1.1.1.
  2. Физические файлы имеют двойное именование – имя ОС и имя, которые вы можете использовать в операторах Transact-SQL (логическое имя, которое указывается в параметре NAME).
  3. Когда вы создаете базу данных, в нее копируется содержимое базы данных model, которая включает системные таблицы и может содержать пользовательские таблицы, созданные вами. Минимальный размер создаваемой базы данных должен быть равен или больше размера базы данных model.
  4. Сервер SQL хранит, читает и записывает данные блоками по 8кб, эти блоки называются страницами. База данных может хранить 128 страниц на мегабайт (1 мегабайт или 1048576 байт разделить 8 килобайт или 8192 байт). Все страницы хранятся в пространстве. Пространство – это 8 последовательных страниц, или 64кб. Поэтому база данных имеет 16 пространств в мегабайте.

Страницы и пространства это основа структуры данных физической базы данных SQL Server. Сервер MS SQL использует различные типы страниц, некоторые следят за выделенным пространством, а некоторые содержат пользовательские данные и индексы. Страницы, которые отслеживают выделенное пространство, содержат плотно сжатую информацию. Это позволяет MS SQL Server эффективно помещать их в память для легкого просмотра.

Сервер SQL использует два типа пространств:

  • Пространства, которые хранят страницы от двух и более объектов, называемые смешанными. Каждая таблицы начинается как смешанное пространство. Вы используете смешанное пространство главным образом для страниц, которые хранят пространство и содержат маленькие объекты.
  • Пространства, которые имеют все 8 страниц выделенных одному объекту, называемый однородным пространством. Они используются, когда таблице или индексу надо более 64 кб пространства.

Первое пространство для каждого файла является смешанным и содержит страницы заголовка файла, следующие по три выделенные страницы. Сервер выделяет эти смешанные пространства, когда вы создаете основной файл данных и использует эти страницы для своих внутренних задач. Страница заголовка файла – содержит атрибуты файла, такие как имя базы данных, которая хранится в файле, файловая группа, минимальный размер, размер приращения. Это первая страница в каждом файле (Страница 0).

Страница свободного пространства (PFS) – это выделенная страница, содержащая информацию о свободном пространстве доступном в файле. Эта информация хранится в странице 1. Каждая такая страница может простираться на 8000 смежных страниц, что приблизительно 64мб данных.

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

Теперь рассмотрим, как можно удалять созданную базу данных, ведь нужно иметь возможность удалить тестовую базу данных, которую мы будем создавать для тестирования:


DROP DATABASE имя

Нельзя удалять базу данных если она:

  • Базу данных, которая открыта для чтения или записи любым пользователем, поэтому при удалении вы также не должны быть к ней подключены. Лучше всего подключиться к базе данных master;
  • Базу данных, которая опубликовала любую свою таблицу как часть репликации SQL Server
  • Системную базу данных

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


CREATE DATABASE имя

Все остальные параметры являются не обязательными. Попробуем создать базу данных с именем TestDatabase и удалить. Сначала создадим базу:


CREATE DATABASE TestDatabase

И тут же ее удалим:


DROP DATABASE TestDatabase

Эти команды нужно выполнять по отдельности. Одновременно выполнять нельзя, иначе сервер вернет ошибку. Рекомендую тестировать примеры. После этого тестовые базы данных можно удалять.

Теперь посмотрим, какие еще возможности дает нам команда создания базы данных. Но сначала вы должны знать, что имя базы данных может иметь не более 128 символов, если вы явно указываете логическое имя файла журнала. Я считаю, это вполне достаточно. Если логическое имя журнала не задано, то размер сокращается до 123 символов. Это связано с тем, что логическое имя журнала также имеет ограничение в 128 символов и если оно не указано, то в качестве имени используется имя базы плюс суффикс _log. Самое интересное, что суффикс занимает четыре символа, а 128-4=124. Почему Microsoft ограничивает имя до 123, для меня остается загадкой. Быть может, составители документации разучились считать?

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

  • Первый символ должен быть буква a-z, A-Z.
  • После первого символа может быть буква, цифра или символ _, @, или #.
  • Идентификаторы, начинающиеся с символов, имеют специальное назначение:
    • Идентификаторы, начинающиеся с символа @, являются локальными переменными или параметрами.
    • Идентификаторы, начинающиеся с символа #, являются временные таблицы или процедуры.
    • Идентификаторы, начинающиеся с символа ##, являются глобальными временными объектами.

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

Если необходимо указать дополнительные параметры, то после оператора CREATE DATABASE нужно указать ON и далее в круглых скобках идут параметры:


CREATE DATABASE TestDatabase ON
(
 Параметры
)

Если какие-то параметры не заданы, то их значения берутся по умолчанию. Пока мы не будем рассматривать возможные параметры, потому что они одинаковы для базы данных и журнала транзакций, и нужно рассмотреть, как описывается журнал.

Журнал транзакций это файл, в котором сохраняется вся активность в отношении базы данных. Например, вы выполняете запрос на обновление данных. В общем виде сервер выполняет следующие действия:

  • Если явно не указано, то сервер автоматически создает новую транзакцию;
  • Запрос сохраняется в журнале;
  • Сервер начинает выполнять обновление;
  • Если все изменения прошли успешно, то транзакция помечается как завершенная, и данные считаются обновленными;
  • Если произошел сбой сервера, или ошибка обработки данных, то транзакция не завершается. В этом случае, все изменения сделанные незавершенной транзакцией отменяются, как будто ничего не произошло. Если во время транзакции отключилось питание, и данные не успели обновиться, то при следующей загрузке сервер увидит в журнале не завершенную транзакцию и попытается завершить.

Получается, что журнал обеспечивает целостность данных. Посмотрим на файловую систему NTSF. Это в своем роде тоже база данных. Если какой-либо файл нарушен и не читаемый, то он только нарушает целостность файловой системы и его необходимо удалить. Программа сканирования scandisk проверяет все транзакции с файловой системой и быстро находит незавершенные операции, отменяя их или завершая.

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

Теперь давайте, рассмотрим, какие параметры можно указывать при создании файлов базы данных и журнала транзакций:

  • NAME – логическое имя, которое будет отображаться в SQL сервере;
  • FILE NAME – физическое расположение и имя файла;
  • SIZE – начальный размер файла. Это начальное значение, которое может увеличиваться по мере надобности.
  • MAXSIZE – максимальный размер файла. Чтобы файл не имел ограничений, необходимо указать в этом параметре UNLIMITED вместо реального значения. Но я рекомендую указывать такое значение, которое не сможет переполнить весь жесткий диск.
  • FILEGROWTH – на сколько должен увеличится размер файла, если текущего размера не достаточно. Это значение можно указывать как в реальных значениях (мегабайты) так и в процентном отношении к текущему размеру. Увеличение должно быть достаточным, чтобы эта операция выполнялась как можно реже.

Давайте теперь рассмотрим несколько примеров, которые позволят закрепить все вышесказанное. В листинге 1.2 показан пример, в котором описывается параметры файла данных и параметры журнала. Если какой-то параметр не указан явно, то его значение берется по умолчанию.

Листинг 1.2. Создание базы данных с описанием параметров файлов


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% 
 )

Посмотрим, что делает вышеуказанный сценарий. В первой строке мы указываем, что необходимо создать базу данных с именем TestDatabase. Затем идет ключевое слово ON, и в круглых скобках указываются параметры файла базы данных. Мы указываем пять параметров: логическое имя (NAME), физическое расположения файла данных (FILENAME), начальный размер устанавливаем в 10 мегабайт (SIZE), максимальный размер ограничивается размером в 1000 гигабайт (MAXSIZE), а в качестве приращения указываем всего лишь 5 мегабайт. Этого достаточно только для тех баз данных, где добавление новых записей происходит не часто.

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

Если база данных не изменяется в размере (не добавляются новые данные), но очень часто происходит изменение уже существующих данных, то приращение для файла данных можно сделать небольшим (5-10 мегабайт, зависит от размера одной записи таблицы). При этом файл журнала должен иметь большее приращение и лучше всего в процентах от существующего размера. Исходя из практики, я бы порекомендовал значение 10%, но в зависимости от задачи, значение можно скорректировать.

Если данные базы используются только как справочник и изменяются очень редко, то размер приращения базы и журнала можно сделать минимальным. Запросы на выборку данных не сохраняются в журнале транзакций, поэтому можно ограничиться увеличением в 1 мегабайт. Но при этом, значение приращения желательно сделать больше размера 100 строк данных. Размер строки можно примерно рассчитать по размеру всех полей самой большой таблицы.

Если вы используете автоматическое увеличение, то лучше всего указать максимальный размер. Это позволит вам предотвратить заполнение базой данных всего жесткого диска.

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


CREATE DATABASE TestDatabase
ON 
( 
  NAME = TestDatabase_data,
  FILENAME = 'c:\data\test.mdf',
  SIZE = 10MB,
  MAXSIZE = 100GB,
  FILEGROWTH = 10% 
 )

Вернемся к нашему примеру из листинга 1.2. После задания параметров файла данных, стоит ключевое слово LOG ON, после которого идет описание параметров файла журнала транзакций. Тут все примерно то же самое, только приращение идет в процентах (может быть и в мегабайтах). Это очень удобно, потому что журнал пополняется не только при добавлении данных, но и при изменении. Приращение в процентах позволяет уменьшить количество операций по увеличению размера файла.

С помощью команды создания базы данных, можно подключать уже существующие файлы. Не путайте с восстановлением данных, когда база восстанавливается из резервной копии. Подключение – это создание базы данных из существующего mdf файла, а не резервной копии. Файл журнала в этом случае желателен, но не обязателен. Более подробно о подключении и отключении базы можно узнать в разделах 1.1.2 и 4.12.

Когда создается новая база данных, она дублирует базу данных model. Любые опции и настройки в базе данных model копируются в новую базу данных. Если вам необходимо создать несколько схожих баз или все баши базы данных должны обладать схожими свойствами, то можно внести необходимые изменения в model.

В одной из баз данных, которую мне пришлось однажды оптимизировать, я нашел очень интересное решение. В базе данных model была создана процедуры создания резервной копии и восстановления. Таким образом, все новые базы получали в свое распоряжение готовый код, который достаточно просто подкорректировать и он будет готов использованию.

Не смотря на удобство использования model, я не рекомендую перегружать его возможностями, особенно таблицами с данными. Если эти таблицы в новой базе не найдут своего применения, то они лягут на нее лишним грузом, да и время создания базы неоправданно увеличиться.

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


CREATE DATABASE TestDatabase2
LOG ON
(
   NAME = 'TestDatabase_log',
   FILENAME = 'c:\data\log',
   SIZE = 5MB,
   MAXSIZE = 10GB,
   FILEGROWTH = 5%
)

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


CREATE DATABASE TestDatabase2
ON
(
   NAME = 'TestDatabase',
   FILENAME = 'c:\data\data',
)
LOG ON
(
   NAME = 'TestDatabase_log',
   FILENAME = 'c:\data\log',
   SIZE = 5MB,
   MAXSIZE = 10GB,
   FILEGROWTH = 5%
)

Файловые группы

Если ваш сервер содержит несколько дисков, вы можете расположить определенные объекты и файлы на индивидуальный диск, группируя ваши файлы базы данных в файловые группы. Файловая группа – это несколько файлов, сгруппированные под определенным именем. Сервер SQL включает одну файловую группу, которая по умолчанию называется как PRIMARY. Вы можете создавать дополнительные файловые группы во время, и после создания базы данных.

С помощью файловой группы вы можете располагать определенные объекты в определенных файлах, которые могут находиться на разных дисках, но сервером SQL будут восприниматься как одно целое пространство для хранения данных. Системный администратор может резервировать и восстанавливать индивидуально файлы или файловые группы, что очень удобно при больших размерах базы данных для эффективной стратегии резервирования и копирования.

Распределение файлов на несколько физических дисков позволяет повысить производительность базы данных. У каждого диска свой контроллер и каждый из них может параллельно производить операции чтения/записи.

Использование файловых групп – это новая и очень мощная технология дизайна баз данных, которую реализовала Microsoft, за что им низкий поклон и уважение. Вы должны четко понимать структуру вашей базы данных, данные, транзакции и запросы уже на этапе проектирования для определения лучшего пути для расположения файлов и индексов в специфичные файловые группы.

Файлы журнала не являются частью файловых групп, и управление ими происходит отдельно от файлов данных. В группы можно объединять только файлы данных.

Сервер SQL поддерживает следующие два типа файловых групп:

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

Когда вы создаете базу данных, основная файловая группа автоматически становиться группой по умолчанию. Файловая группа по умолчанию получает все новые таблицы, индексы и файлы, для которых файловая группа не указана. Если ваша база данных содержит более чем одну файловую группу, рекомендуется изменить группу по умолчанию, чтобы ею была группа определенная вами. Это позволит изолировать основную файловую группу, которая содержит системные таблицы и обезопасить от разрушения из-за пользовательских таблиц, за счет того, что пользовательские данные будут попадать в пользовательскую файловую группу.

Если файловая группа по умолчанию становится основной, установите корректный размер. Если в файловой группе закончится свободное пространство, вы не сможете добавлять какую-либо информацию в системные таблицы. Если пользовательская файловая группа не сможет увеличиваться в размере, то добавлять информацию можно будет только в пользовательские таблицы, расположенные в этой группе.

Итак, одна база данных в MS SQL Server может состоять из нескольких файлов данных, файловых групп или журналов. Это очень удобно, когда необходимо распределить нагрузку между несколькими жесткими дисками. Давайте рассмотрим эту возможность и увидим, какие преимущества она дает и как их использовать.

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

Вы можете создать новые файловые группы и в них размещать пользовательские таблицы. Основная файловая группа может быть расположена на одном физическом диске, а группа с пользовательскими таблицами может быть на другом диске. Таким образом, два диска могут читать данные параллельно. Только это уже позволит повысить производительность, ведь при обращении к пользовательским данных очень часто необходимо обратиться и к системным таблицам. Это происходит незаметно для пользователя, но если чтение и запись будет происходить параллельно, то сервер сможет обрабатывать больше запросов со стороны пользователя. В наше время жесткий диск является наиболее слабым местом (это единственное устройство, не считая съемных носителей, которое остается механическим, а не электронным).

Помимо этого, сервер позволяет производить резервное копирование определенных файловых групп. Допустим, что у вас в базе данных две таблицы, которые имеют очень большой размер, но одна изменяется часто, а вторая нет. Резервировать обе таблицы с одинаковой частотой нет смысла. Если поместить их в разные файловые группы, то группу с часто изменяемой таблицей можно резервировать хоть каждый час, а таблицу с редко изменяемыми данными можно резервировать по мере изменения данных.

Чтобы еще больше оптимизировать процесс резервирования, можно в одну группу файлов поместить часто изменяемые таблицы и резервировать эту группу с больше частотой, чем ту группу, в которой находятся менее изменяемые таблицы. Более подробно о резервировании мы поговорим в разделе 4.10.

Итак, давайте создадим базу данных, в которой будет две файловые группы: обязательная PRIMARY (в нее поместим два файла) и пользовательская FILEGR1 (в ней разместим 3 файла). Код создания можно увидеть в листинге 1.3.

Листинг 1.3. Создание базы данных с файловыми группами


CREATE DATABASE TestBatabase
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% 
)

Перед описанием первого файла, мы явно указываем, что он будет создан в основной файловой группе (ON PRIMARY). После этого в круглых скобках через запятую идет описание двух файлов. Потом создается новая файловая группа DBGroup1 с помощью оператора FILEGROUP:


FILEGROUP DBGroup1

И теперь идет описание файлов для этой файловой группы. Обратите внимание, что каждый файл находиться на своем жестком диске. Это позволит добиться параллельного чтения записи в каждый файл. На рисунке 1.1 вы можете видеть окно свойств созданной базы данных с несколькими файлами (окно программы Enterprise Manager). В последней колонке списка показана файловая группа файла данных. Единственное, на рисунке все файлы находятся на одном диске, потому что у меня в компьютере нет необходимого количества разделов, потому что у меня не сервер, а простой ноутбук. Но на рабочих серверах лучше устанавливать по несколько дисков и распределять между ними нагрузку.

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

Подключение базы данных

Когда подключение удобнее и даже выгоднее резервирования? Недавно я столкнулся с такой проблемой, что настройки репликации не попадают в резервную копию. Это оказалось серьезной проблемой. У меня на работе есть два офиса, который находятся в разных концах города и не соединены через Интернет. Чтобы производить репликацию, базу данных удаленного офиса нужно перевозить в главный офис, но через резервную копию этого не получилось. База данных восстанавливается, как будто никаких настроек репликации не было.

Первое, что приходит в голову после такого разочарования – таскать жесткий диск или весь системный блок для репликации в основной офис. Это, конечно же, не очень удачный выход. И вот однажды мы попытались отключить базу данных на удаленном сервере, привести в центральный офис и подключить. Настройки репликации сохранились!

Для отключения базы данных используется системная процедура sp_detach_db. С процедурами мы пока еще не знакомы и это тема 3-й главы, поэтому пока просто выполните следующую команду для отключения:


EXEC sp_detach_db 'TestDatabase', 'true'

Про отключение баз данных мы поговорим в разделе 4. 12. Там же процедура sp_detach_db будет рассмотрена более подробно.

Посмотрим, как можно подключить файл базы данных к серверу с помощью оператора CREATE DATABASE:


CREATE DATABASE DatabaseName
ON PRIMARY (FILENAME = 'c:\data\filename.mdf')
FOR ATTACH

В первой строке указаны ключевые слова CREATE DATABASE, после которых указывается имя подключаемой базы данных. Ключевое слово ON PRIMARY означает создание в основной файловой группе. После этого в круглых скобках указывается путь к существующему файлу данных. И в последней строке указываем FOR ATTACH, то есть для подключения.

Обратите внимание, что имя подключаемой базы отличается от имени базы, которую мы отключали. Раньше имя было TestDatabase, а после подключения оно превратилось в Archive. Таким образом, мы смогли переименовать уже существующую базу данных. С помощью оператора ALTER DATABASE, который используется для редактирования параметров (см. разд. 1.3) базы переименование невозможно.

Сопоставление

У нас остался еще один параметр, который мы не рассмотрели – это Collation (сопоставление). Что это такое? У начинающих администраторов он вызывает страх, а у опытных – уважение. С помощью Collation можно указать раскладку (кодировку), которая будет использоваться по умолчанию для заданной базы данных. В MS SQL Server существует три способа задать раскладку (кодировку):

  1. Для каждого поля в отдельности. Вы можете указать кодировку конкретного поля таблицы. Если у поля не указана кодировка, то будет взято значение, указанное для базы данных;
  2. Для базы данных в целом. Указанная кодировка для базы данных будет использоваться по умолчанию для всех полей таблиц, если не указано иного. Если при создании базы данных параметр Collation не задан, то будет использоваться значение по умолчанию, указанное для сервера баз данных в целом.
  3. Глобальная кодировка. Это значение задается во время установки MS SQL Server и по умолчанию устанавливается в соответствии с региональными настройками ОС сервера.

Самый простой вызов команды:


CREATE DATABASE TestDatabase1
COLLATE Cyrillic_General_CI_AS

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

Листинг 1.4. Создание базы данных с описанием параметров файлов и кодировки


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

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


SELECT *
FROM ::fn_helpcollations()

На данном этапе не будем останавливаться на том, что здесь происходит, потому что запросы SELECT это тема второй главы. Замечу только, что в результате на экране вы увидите таблицу из двух колонок name (имя) и description (описание).

Определенная раскладка может быть назначена только текстовым полям. Это вполне логично, ведь числовые поля и даты содержать только числа, которые для любого национального языка одинаковы.

Создание базы геоданных в SQL Server—ArcMap

"""
Name: create_enterprise_gdb.py
Description: Provide connection information to a DBMS instance and create an enterprise geodatabase.
Type  create_enterprise_gdb.py -h or create_enterprise_gdb.py --help for usage
"""

# Import system modules
import arcpy
import os
import optparse
import sys


# Define usage and version
parser = optparse.OptionParser(usage = "usage: %prog [Options]", version="%prog 1.0 for " + arcpy.GetInstallInfo()['Version'] )

#Define help and options
parser.add_option ("--DBMS", dest="Database_type", type="choice", choices=['SQL_SERVER', 'ORACLE', 'POSTGRESQL', ''], default="", help="Type of enterprise DBMS:  SQL_SERVER, ORACLE, or POSTGRESQL. ")                   
parser.add_option ("-i", dest="Instance", type="string", default="", help="DBMS instance name")
parser.add_option ("-D", dest="Database", type="string", default="none", help="Database name:  Do not specify for Oracle")
parser.add_option ("--auth", dest="Account_authentication", type ="choice", choices=['DATABASE_AUTH', 'OPERATING_SYSTEM_AUTH'], default='DATABASE_AUTH', help="Authentication type options (case-sensitive):  DATABASE_AUTH, OPERATING_SYSTEM_AUTH.  Default=DATABASE_AUTH")
parser.add_option ("-U", dest="Dbms_admin", type="string", default="", help="DBMS administrator user")
parser.add_option ("-P", dest="Dbms_admin_pwd", type="string", default="", help="DBMS administrator password")
parser.add_option ("--schema", dest="Schema_type", type="choice", choices=['SDE_SCHEMA', 'DBO_SCHEMA'], default="SDE_SCHEMA", help="Schema type  applies to geodatabases in SQL Server only. Type SDE_SCHEMA to create geodatabase in SDE schema or type DBO_SCHEMA to create geodatabase in DBO schema.  Default=SDE_SCHEMA")
parser.add_option ("-u", dest="Gdb_admin", type="string", default="", help="Geodatabase administrator user name; Must always be sde for PostgreSQL, sde-schema geodatabases in SQL Server, and sde geodatabase in Oracle")
parser.add_option ("-p", dest="Gdb_admin_pwd", type="string", default="", help="Geodatabase administrator password")
parser.add_option ("-t", dest="Tablespace", type="string", default="", help="Tablespace name; For PostgreSQL, type name of existing tablespace in which to store database. If no tablespace name specified, pg_default is used. For Oracle, type name of existing tablespace, or, if tablespace with specified name does not exist, it will be created and set as the default tablespace for the sde user. If no tablespace name is specified, SDE_TBS tablespace is created and set as sde user default. Tablespace name not supported for SQL Server.")
parser.add_option ("-l", dest="Authorization_file", type="string", default="", help="Full path and name of authorization file; file created when ArcGIS Server Enterprise authorized, and stored in \\Program Files\ESRI\License<release#>\sysgen on Windows or /arcgis/server/framework/runtime/. wine/drive_c/Program Files/ESRI/License<release#>/sysgen on Linux")
# Check if value entered for option
try:
	(options, args) = parser.parse_args()

	
	#Check if no system arguments (options) entered
	if len(sys.argv) == 1:
		print("%s: error: %s\n" % (sys.argv[0], "No command options given"))
		parser.print_help()
		sys.exit(3)

	#Usage parameters for spatial database connection
	database_type = options.Database_type.upper()
	instance = options.Instance
	database = options.Database.lower()	
	account_authentication = options.Account_authentication.upper()
	dbms_admin = options.Dbms_admin
	dbms_admin_pwd = options.Dbms_admin_pwd
	schema_type = options.Schema_type.upper()
	gdb_admin = options.Gdb_admin
	gdb_admin_pwd = options.Gdb_admin_pwd	
	tablespace = options.Tablespace
	license = options.Authorization_file

	
	if( database_type ==""):	
		print(" \n%s: error: \n%s\n" % (sys.argv[0], "DBMS type (--DBMS) must be specified."))
		parser.print_help()
		sys.exit(3)		
		
	if (license == ""):
		print(" \n%s: error: \n%s\n" % (sys. argv[0], "Authorization file (-l) must be specified."))
		parser.print_help()
		sys.exit(3)			
	
	if(database_type == "SQL_SERVER"):
		if(schema_type == "SDE_SCHEMA" and gdb_admin.lower() != "sde"):
			print("\n%s: error: %s\n" % (sys.argv[0], "To create SDE schema on SQL Server, geodatabase administrator must be SDE."))
			sys.exit(3)
		if (schema_type == "DBO_SCHEMA" and gdb_admin != ""):
			print("\nWarning: %s\n" % ("Ignoring geodatabase administrator specified when creating DBO schema..."))
		if( account_authentication == "DATABASE_AUTH" and dbms_admin == ""):
			print("\n%s: error: %s\n" % (sys.argv[0], "DBMS administrator must be specified with database authentication"))
			sys.exit(3)
		if( account_authentication == "OPERATING_SYSTEM_AUTH" and dbms_admin != ""):
			print("\nWarning: %s\n" % ("Ignoring DBMS administrator specified when using operating system authentication..."))
	else:
		if (schema_type == "DBO_SCHEMA"):
			print("\nWarning: %s %s, %s\n" % ("Only SDE schema is supported on", database_type, "switching to SDE schema. .." ))
			
		if( gdb_admin.lower() == ""):
			print("\n%s: error: %s\n" % (sys.argv[0], "Geodatabase administrator must be specified."))
			sys.exit(3)

		if( gdb_admin.lower() != "sde"):
			if (database_type == "ORACLE"):
				print("\nGeodatabase admin user is not SDE, creating user schema geodatabase on Oracle...\n")
			else:
				print("\n%s: error: %s for %s.\n" % (sys.argv[0], "Geodatabase administrator must be SDE", database_type))
				sys.exit(3)
			
		if( dbms_admin == ""):
			print("\n%s: error: %s\n" % (sys.argv[0], "DBMS administrator must be specified!"))
			sys.exit(3)

		if (account_authentication == "OPERATING_SYSTEM_AUTH"):
			print("Warning: %s %s, %s\n" % ("Only database authentication is supported on", database_type, "switching to database authentication..." ))

	# Get the current product license
	product_license=arcpy.ProductInfo()
	
	
	# Checks required license level
	if product_license.upper() == "ARCVIEW" or product_license.upper() == 'ENGINE':
		print("\n" + product_license + " license found!" + " Creating an enterprise geodatabase requires an ArcGIS Desktop Standard or Advanced, ArcGIS Engine with the Geodatabase Update extension, or ArcGIS Server license. ")
		sys.exit("Re-authorize ArcGIS before creating enterprise geodatabase.")
	else:
		print("\n" + product_license + " license available!  Continuing to create...")
		arcpy.AddMessage("+++++++++")
	
	
	try:
		print("Creating enterprise geodatabase...\n")
		arcpy.CreateEnterpriseGeodatabase_management(database_platform=database_type,instance_name=instance, database_name=database, account_authentication=account_authentication, database_admin=dbms_admin, database_admin_password=dbms_admin_pwd, sde_schema=schema_type, gdb_admin_name=gdb_admin, gdb_admin_password=gdb_admin_pwd, tablespace_name=tablespace, authorization_file=license)
		for i in range(arcpy.GetMessageCount()):
			arcpy.AddReturnMessage(i)
		arcpy.AddMessage("+++++++++\n")
	except:
		for i in range(arcpy.GetMessageCount()):
			arcpy.AddReturnMessage(i)
			
#Check if no value entered for option	
except SystemExit as e:
	if e.code == 2:
		parser.usage = ""
		print("\n")
		parser.print_help()   
		parser.exit(2)

Подключение БД MS SQL | FixMyPC

В MS SQL можно создать базу данных с 0 или подключить существующую (не восстановление из бэкапа). Рассмотрим оба варианта. Для подключения существующей базы будем использовать одну из баз ниже, эти базы применяются для обучения.

Тестовые базы данных MS SQL для скачивания (подойдет любая):

 

Подключение базы данных

Нам понадобится установленный MS SQL сервер (как установить написано тут). Подключаемся к SQL серверу с помощью SSMS и распаковываем архив. Базы данных всегда состоят минимум из 2 файлов. Один файл, с расширением mdf, является самой базой данных, а ldf — это журнал транзакций. Чаще всего эти файлы кладут на разные диски (за исключение высокопроизводительных RAID массивов или SAN систем).

В открытом окне SQL Server Management Studio нажимаем указанные кнопки:

Затем нажимаем кнопку «Добавить», выбираем папку, где находится база и 2 раза кликаем по файлу с расширением mdf

Затем нажимаем «ОК» и после этого мы можем увидеть подключенную базу данных

 

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

Базу данных можно создать двумя путями. С помощью интерфейса или SQL запроса. 

Для создания запроса нам нужно нажать кнопку «Создать запрос» или «New Querry»

В новом окне пишем:


CREATE DATABASE Magazine

Где «Magazine» — имя вашей базы. Можно использовать кириллические символы и пробел, но это не рекомендуется. Если в названии стоит пробел, то название стоит выделить в кавычки, например:


CREATE DATABASE "Magazine Moscow"

Если мы создаем базу, например, для 1С или для задач, где будут использоваться разные кодировки, то кодировка по умолчанию подойдет (latin1_general_cp1_ci_as). 1С все хранит в юникод формате.

Если же мы создаем базу под конкретную задачу, где будут использоваться только кирилические символы мы можем захотеть создать базу с кодировкой, что немного повысит производительность и сохранит место:


CREATE DATABASE "Magazine Moscow" COLLATE cyrillic_general_ci_as

После написания запроса нажимаем зеленую кнопку «Выполнить»:

Для создание базы через графический интерфейс нужно пройти 2 шага:

Затем заполнить название и нажать «Ок»

Возможно понадобится обновить список нажав кнопку:

База данных создана.

Теги: #ms-sql

Создание базы данных — SQL Server

  • 3 минуты на чтение

В этой статье

Применимо к: SQL Server (все поддерживаемые версии)

В этом разделе описывается, как создать базу данных в SQL Server с помощью SQL Server Management Studio или Transact-SQL.

В этой теме

Прежде чем начать

Ограничения и ограничения

  • На экземпляре SQL Server можно указать максимум 32 767 баз данных.

Предварительные требования

  • Оператор CREATE DATABASE должен выполняться в режиме автоматической фиксации (режим управления транзакциями по умолчанию) и не допускается в явной или неявной транзакции.

Рекомендации

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

  • При создании базы данных делайте файлы данных как можно больше, исходя из максимального количества данных, которые вы ожидаете в базе данных.

Безопасность

Разрешения

Требуется разрешение CREATE DATABASE в базе данных master, либо разрешение CREATE ANY DATABASE, либо ALTER ANY DATABASE.

Чтобы сохранить контроль над использованием диска в экземпляре SQL Server, разрешение на создание баз данных обычно ограничивается несколькими учетными записями.

Использование SQL Server Management Studio

Для создания базы данных
  1. В обозревателе объектов подключитесь к экземпляру ядра СУБД SQL Server, а затем разверните этот экземпляр.

  2. Щелкните правой кнопкой мыши Базы данных , а затем щелкните Новая база данных .

  3. В Новая база данных введите имя базы данных.

  4. Чтобы создать базу данных, приняв все значения по умолчанию, нажмите ОК ; в противном случае выполните следующие необязательные шаги.

  5. Чтобы изменить имя владельца, щелкните (), чтобы выбрать другого владельца.

    Примечание

    Параметр Использовать полнотекстовое индексирование всегда отмечен и неактивен, поскольку, начиная с SQL Server 2008, для всех пользовательских баз данных включен полнотекстовый режим.

  6. Чтобы изменить значения по умолчанию для файлов первичных данных и журнала транзакций, в сетке Файлы базы данных щелкните соответствующую ячейку и введите новое значение. Для получения дополнительной информации см. Добавление файлов данных или журналов в базу данных.

  7. Чтобы изменить параметры сортировки базы данных, выберите страницу Options , а затем выберите параметры сортировки из списка.

  8. Чтобы изменить модель восстановления, выберите страницу Параметры и выберите модель восстановления из списка.

  9. Чтобы изменить параметры базы данных, выберите страницу Параметры , а затем измените параметры базы данных. Описание каждого параметра см. В разделе Параметры ALTER DATABASE SET (Transact-SQL).

  10. Чтобы добавить новую файловую группу, щелкните страницу Filegroups . Щелкните Добавить и введите значения для файловой группы.

  11. Чтобы добавить расширенное свойство в базу данных, выберите страницу Расширенные свойства .

    1. В столбце Имя введите имя расширенного свойства.

    2. В столбце Значение введите расширенный текст свойства. Например, введите один или несколько операторов, описывающих базу данных.

  12. Чтобы создать базу данных, нажмите ОК .

Использование Transact-SQL

Для создания базы данных
  1. Подключитесь к ядру СУБД.

  2. На стандартной панели щелкните Новый запрос .

  3. Скопируйте и вставьте следующий пример в окно запроса и щелкните Execute . В этом примере создается база данных Sales . Поскольку ключевое слово PRIMARY не используется, первый файл ( Sales_dat ) становится основным файлом. Поскольку ни МБ, ни КБ не указаны в параметре SIZE для файла Sales_dat , он использует МБ и выделяется в мегабайтах.Файл Sales_log выделяется в мегабайтах, поскольку суффикс МБ явно указан в параметре SIZE .

  Мастер USE;
ИДТИ
СОЗДАТЬ БАЗУ ДАННЫХ Продажи
НА
(NAME = Sales_dat,
    FILENAME = 'C: \ Program Files \ Microsoft SQL Server \ MSSQL13.MSSQLSERVER \ MSSQL \ DATA \ saledat.mdf',
    РАЗМЕР = 10,
    MAXSIZE = 50,
    FILEGROWTH = 5)
ВОЙТИ
(ИМЯ = Журнал продаж,
    FILENAME = 'C: \ Program Files \ Microsoft SQL Server \ MSSQL13. MSSQLSERVER \ MSSQL \ DATA \ salelog.ldf ',
    РАЗМЕР = 5 МБ,
    MAXSIZE = 25 МБ,
    FILEGROWTH = 5 МБ);
ИДТИ
  

Дополнительные примеры см. В разделе CREATE DATABASE (SQL Server Transact-SQL).

См. Также

Файлы и группы файлов базы данных
Отсоединение и присоединение базы данных (SQL Server)
ALTER DATABASE (Transact-SQL)
Добавление файлов данных или журналов в базу данных

Просмотр списка баз данных на SQL Server — SQL Server

  • 2 минуты на чтение

В этой статье

Применимо к: SQL Server (все поддерживаемые версии) База данных SQL Azure

В этом разделе описывается, как просмотреть список баз данных в экземпляре SQL Server с помощью SQL Server Management Studio или Transact-SQL.

В этой теме

Прежде чем начать

Безопасность

Разрешения

Если вызывающий sys.databases не является владельцем базы данных, а база данных не является master или tempdb , минимальные разрешения, необходимые для просмотра соответствующей строки: ALTER ANY DATABASE или VIEW ANY DATABASE на уровне сервера разрешение или разрешение CREATE DATABASE в базе данных master . Базу данных, к которой подключен вызывающий абонент, всегда можно просмотреть в sys.Базы данных .

Использование SQL Server Management Studio

Для просмотра списка баз данных на экземпляре SQL Server
  1. В обозревателе объектов подключитесь к экземпляру ядра СУБД SQL Server, а затем разверните этот экземпляр.

  2. Чтобы просмотреть список всех баз данных в экземпляре, разверните Базы данных .

Использование Transact-SQL

Для просмотра списка баз данных на экземпляре SQL Server
  1. Подключитесь к ядру СУБД.

  2. На стандартной панели щелкните Новый запрос .

  3. Скопируйте и вставьте следующий пример в окно запроса и щелкните Execute . В этом примере возвращается список баз данных на экземпляре SQL Server. Список включает имена баз данных, их идентификаторы баз данных и даты создания баз данных.

  ИСПОЛЬЗОВАТЬ AdventureWorks2012;
ИДТИ
ВЫБЕРИТЕ имя, database_id, create_date
ОТ sys.базы данных;
ИДТИ
  
  

См. Также

Базы данных и представления каталога файлов (Transact-SQL)
sys.databases (Transact-SQL)

Добавление файлов данных или журналов в базу данных — SQL Server

  • Профессиональные услуги

    Формируйте свою стратегию и трансформируйте гибридную ИТ-среду.


  • Профессиональные услуги по продуктам
  • Аналитика и большие данные

    Помогите вам внедрить безопасность в цепочку создания стоимости ИТ и наладить сотрудничество между ИТ-подразделениями, приложениями и группами безопасности.

  • Информационная безопасность

    Помогите вам быстрее реагировать и получить конкурентное преимущество благодаря гибкости предприятия.

  • DevOps

    Повысьте эффективность гибридного облака с помощью консультационных услуг, услуг по трансформации и внедрению.

  • Консультации по цепочке создания стоимости IT4IT

    Службы управления приложениями, которые позволяют поручить управление решениями экспертам, разбирающимся в вашей среде.

  • Управление доставкой приложений

    Услуги стратегического консалтинга для разработки вашей программы цифровой трансформации.

  • Жизненный цикл мобильного приложения

    Полнофункциональное моделирование сценариев использования с предварительно созданными интеграциями в портфеле программного обеспечения Micro Focus, демонстрирующее реальные сценарии использования

  • Управление гибридным облаком и брокерские услуги

    Экспертные аналитические службы безопасности, которые помогут вам быстро спроектировать, развернуть и проверить реализацию технологии безопасности Micro Focus.

  • Автоматизация ЦОД

    Служба интеграции и управления услугами, которая оптимизирует доставку, гарантии и управление в условиях нескольких поставщиков.

  • Управление операциями

    Анализируйте большие данные с помощью аналитики в реальном времени и ищите неструктурированные данные.

  • Управление услугами

    Анализируйте большие данные с помощью аналитики в реальном времени и ищите неструктурированные данные.

  • Vertica

    Анализируйте большие данные с помощью аналитики в реальном времени и ищите неструктурированные данные.

  • Глобальная аутентификация продукта

    Мобильные услуги, обеспечивающие производительность и ускоряющие вывод продукта на рынок без ущерба для качества.

  • Управляемые службы

    Анализируйте большие данные с помощью аналитики в реальном времени и ищите неструктурированные данные.

  • Модельные офисы

    Комплексные услуги по работе с большими данными для продвижения вашего предприятия.

  • Как создать базу данных в SQL Server

    База данных в Sql Server — это место хранения, где мы можем хранить наши бизнес-данные. База данных SQL использует таблицы для хранения нашей информации в нормализованном виде. Итак, создав базу данных на сервере Sql, мы можем легко выбирать, обновлять и удалять бизнес-данные.

    Давайте посмотрим, как создать базу данных на SQL Server, переименовать базу данных в SQL и удалить базу данных на сервере Sql с примером каждого из них.

    Как создать базу данных в SQL Server, пример

    Прежде чем мы начнем создавать новую базу данных в SQL Server, давайте посмотрим список доступных баз данных. На скриншоте ниже показан список доступных баз данных в текущем экземпляре Sql Server.

    Базовый синтаксис для создания базы данных SQL:

     СОЗДАТЬ БАЗУ ДАННЫХ Имя_базы_данных 

    В этом примере мы собираемся создать новую базу данных на сервере Sql с именем New_Database.Итак, замените Database_Name на New_database в окне запроса SQL Server, как показано ниже

     - Код для создания базы данных SQL
    СОЗДАТЬ БАЗУ ДАННЫХ New_Database; 

    Нажмите кнопку «Выполнить», чтобы выполнить команду создания базы данных.

    На приведенном ниже снимке экрана вы можете увидеть, что команда SQL Create Databse выполняется успешно, и вы можете увидеть New_Database в нашем проводнике объектов

    СОВЕТ: Если вы не нашли вновь созданную базу данных в Sql Server Object Explorer, нажмите кнопку обновления.

    Давайте посмотрим, что произойдет, когда мы снова выполним ту же команду SQL Create Database. На приведенном ниже снимке экрана вы можете заметить, что он выдает сообщение об ошибке: New_database уже существует. Выберите другое имя базы данных.

    ПРИМЕЧАНИЕ. В организации мы можем иметь или не иметь привилегии знать доступные базы данных в SQL Server. Поэтому всегда рекомендуется проверять, существует ли уже имя базы данных

    Как проверить, существует ли имя базы данных SQL

    Это можно сделать двумя способами:

    Следующий оператор будет выполнять только SQL Create Database Statement, если New_database недоступна в системной базе данных

     - Пример создания базы данных SQL
    ЕСЛИ НЕ СУЩЕСТВУЕТ
       (
         ВЫБЕРИТЕ имя ОТ мастера.dbo.sysdatabases
         ГДЕ name = N'New_Database '
        )
    СОЗДАТЬ БАЗУ ДАННЫХ [New_Database] 

    Мы просто заменили If Not Exists на If Exists и добавили оператор select для отображения сообщения. Шаги, указанные в следующем заявлении:

    • Если New_database уже существует, то следующий запрос отобразит сообщение о том, что база данных уже существует.
    • SQL Create database command only execute, if the New_database is not available in a system database
     - Code to Sql Server Create Database
    ЕСЛИ СУЩЕСТВУЕТ
       (
         ВЫБЕРИТЕ имя ОТ мастера.dbo.sysdatabases
        ГДЕ name = N'New_Database '
        )
    НАЧИНАТЬ
        ВЫБЕРИТЕ "Имя базы данных уже существует" как сообщение
    КОНЕЦ
    ЕЩЕ
    НАЧИНАТЬ
        СОЗДАТЬ БАЗУ ДАННЫХ [New_Database]
        ВЫБЕРИТЕ 'Новая база данных создана'
    КОНЕЦ 

    Следующий оператор проверяет имя базы данных New_database в системной базе данных.

     ВЫБРАТЬ имя ИЗ master.dbo.sysdatabases
         ГДЕ name = N'New_Database '

    Если база данных не существует, то будет выполнен только следующий оператор SQL create Databse

     СОЗДАТЬ БАЗУ ДАННЫХ [New_Database] 

    В противном случае выполняется следующая команда. Появится сообщение о том, что база данных уже существует

     ВЫБЕРИТЕ "Имя базы данных уже существует" как сообщение 

    Как создать базу данных в SQL Server Management Studio

    Чтобы создать новую базу данных на сервере SQL, сначала откройте SQL Server Management Studio.

    В проводнике объектов щелкните правой кнопкой мыши папку Базы данных , чтобы открыть контекстное меню. Выберите Новая база данных .. из контекстного меню, как показано ниже

    После выбора Новая база данных.. , откроется следующее окно. Здесь мы оставили Owner по умолчанию, а имя базы данных — New_database, как показано ниже. Нажмите ОК, чтобы создать новую базу данных в Sql Server

    .

    Давайте посмотрим, что произойдет, когда мы SQL создадим базу данных с существующим именем. На скриншоте ниже вы можете увидеть, что выдает ошибку

    .

    Как удалить базу данных в SQL Server

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

    Синтаксис для базы данных удаления или удаления базы данных SQL на сервере SQL:

     DROP DATABASE [Имя базы данных] 

    В этом примере мы собираемся удалить New_Database. Итак, в окне запроса напишите следующий запрос к базе данных SQL Drop

     УДАЛЕНИЕ БАЗЫ ДАННЫХ [New_Database] 

    Давайте посмотрим, что произойдет, когда мы снова выполним ту же команду SQL Drop Database:

    Из приведенного выше снимка экрана вы можете заметить, что выдается сообщение об ошибке: New_database не существует.

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

     ЕСЛИ СУЩЕСТВУЕТ
       (
         ВЫБЕРИТЕ имя ИЗ master.dbo.sysdatabases
         ГДЕ name = N'New_Database '
        )
    УДАЛИТЬ БАЗУ ДАННЫХ [New_Database] 

    Следующий оператор проверяет имя базы данных New_database в системной базе данных.

     ВЫБРАТЬ имя ИЗ master.dbo.sysdatabases
         ГДЕ name = N'New_Database '

    Если база данных существует, то будет выполнен только следующий оператор SQL drop database.

     УДАЛЕНИЕ БАЗЫ ДАННЫХ [New_Database] 

    Как переименовать базу данных в SQL Server

    Чтобы переименовать базу данных на сервере SQL, мы можем просто использовать системную хранимую процедуру sp_renamedb

    Синтаксис для переименования базы данных в Sql Server:

     SP_RENAMEDB [старое имя базы данных], [новое имя базы данных] 

    В этом примере мы собираемся переименовать New_Database в New_Db.