Программирование >>  Программирование баз данных 

1 ... 35 36 37 [ 38 ] 39 40 41 ... 346


Если применяется ключевое слово FOR ATTACH, то должна быть также задана информация о местонахождении файлов в части ON PRIMARY оператора создания базы данных. Другие части списка параметров оператора CREATE DATABASE могут быть исключены, при условии, что файлы, присоединяемые к базе данных, находятся в том же пути к файлам, в котором они находились при первоначальном отсоединении.

Ключевое СЛОВО with db chaining on off

Как было сказано выше, в действительности понятие схемы в предыдущих версиях СУБД SQL Server не использовалось. Вместо этого для определения принадлежности объектов служило такое понятие, как владелец. Подобная организация работы была несовершенной и, в частности, приводила к таким ситуациям, что образовывались так называемые цепочки владельцев. Наличие цепочки владельцев характеризуется тем, что, допустим, пользователь А является владельцем некоторого объекта, после чего пользователь В становится владельцем объекта, который зависит от другого объекта, принадлежащего пользователю А. Не исключена также возможность, что еще какие-то пользователи будут продолжать создавать объекты, зависящие от объектов других пользователей, что приведет к возникновению сложного переплетения проблем, связанных с предоставлением прав доступа к объектам.

Параметр WITH DB CHAINING ON OFF определяет, должны ли поддерживаться такие цепочки владельцев, которые пересекают границы между базами данных (когда объект пользователя А находится в базе данных DB1, а зависящий от него объект пользователя В - в базе данных DB2). Если этот параметр имеет значение ON, то цепочки владельцев, охватывающие несколько баз данных, становятся применимыми, а если задано значение OFF, то такие цепочки не поддерживаются. Следует всячески избегать создания цепочек владельцев, так как для базы данных они являются настоящим бедствием!

Ключевое слово trustworthy

По умолчанию этот параметр имеет значение of f, и применительно к подавляющему большинству баз данных такой вариант его применения является вполне оправданным. Рассмотрим назначение этого ключевого слова. Прежде всего, с помощью ключевого слова TRUSTWORTHY может быть указано, что в базе данных имеются объекты (по всей вероятности, сборки .NET, о чем речь пойдет в главе 14), для которых требуется доступ к объектам, находящимся вне среды SQL Server (таким как файловая система), и что доступ должен быть предоставлен в одном из контекстов заимствования полномочий. Более подробные сведения о контекстах заимствования полномочий приведены в главе 22, а на данный момент достаточно отметить, что они могут рассматриваться как способ модификации средств защиты, относящихся к конкретному объекту, который позволяет получить особые возможности доступа, выходящие за пределы того, что обычно имеет пользователь, подключившийся к объекту, при условии, что доступ происходит в рамках контекста этого объекта. (Например, речь может идти о доступе к определенному сетевому ресурсу.)

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

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



CREATE DATABASE Accounting ON

(NAME = Accounting,

FILENAME = c:\Program Files\Microsoft SQL Server\ MSSQL.l\rassql\data\Accountinta.ndf, SIZE = 10, MAXSIZE = 50, FILEGROWTH = 5) LOG ON

(NAME = AccountingLog,

FILENAME = cAProgram Files\Microsoft SQL Server\ MSSQL.l\rassql\data\AccountingLog.Idf, SIZE = 5MB, MAXSIZE = 25MB, FILEGROWTH = 5MB)

После выполнения этого оператора обычно рекомендуется вызывать на выполнение системную процедуру sp helpdb. Эта системная хранимая процедура специально предназначена для получения информации о структуре базы данных, причем часто позволяет получить наиболее полные сведения, особенно если интерес в основном представляет сама база данных, а не объекты, которые в ней содержатся. Процедура sp helpdb принимает один формальный параметр - имя базы данных: EXEC sp helpdb Accounting

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

Таблица 4.1. Первый результирующий набор процедуры sphelpdb

name dbsize owner dbid created status con?)atibility

level

Accounting 15.00 MB sa 9 May 28 Status=ONLINE, 90

2 005 Updateability=READ WRITE, UserAccess=MULTI USER, Recovery=FULL, Vers ion=5 9 8, Collation=SQL Latinl General CPl CI AS, SQLSortOrder=52, IsAutoCreateStatistics, IsAutoUpdateStatistics, IsFullTextEnabled

Данные, приведенные в табл. 4.1, относятся к опредеиенному компьютеру, а на другом компьютере могут быть получены другие данные. Например, значение DBID зависит от того, сколько баз данных хранится на компьютере и в какой последовательности эти базы данных были созданы. А состав сообщений о статусе (status) зависит от того, какие опции сервера были заданы во время создания баз данных, а также от того, какие опции базы данных были изменены в процессе ее эксплуатации.

Следует отметить, что свойство db size представляет собой суммарную величину, объединяющую в себе размер базы данных и размер журнала.

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



Таблица 4.2. Второй результирующий набор процедуры sphelpdb

name fileid Filename filegroup size msixsize growth usage

Accounting

1 C:\Program Files\ PRIMARY

10240 KB 51200 KB 5120 KB data

Microsoft SQL Server\

only

mssql\data\

Account ingData.mdf

Accounting

2 C:\Program Files\ NULL

5120 KB 25600 KB 5120 KB log

Microsoft SQL Server\

only

mssql\data\

AccountingLog.Idf

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

Оператор create table

Первая часть оператора создания таблицы во многом напоминает по своей структуре оператор создания любого объекта, приведенный выше в данной главе. Рассмотрим еще раз обшую структуру оператора создания объекта: CREATE <object type> <object name>

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

CREATE TABLE Customers

Итак, при использовании оператора CREATE DATABASE можно действительно ограничиться только подобными первыми тремя ключевыми словами, в результате чего создается база данньис, соответствующая тем параметрам, применяемым по умолчанию, которые определены в базе данных model. Но применительно к таблицам подобный образец отсутствует, поэтом) необходимо задать все подробные сведения, касающиеся состава столбцов, применяемых в таблице типов данньис и специальных операций.

В связи с этим рассмотрим более подробную синтаксическую структуру оператора создания таблицы:

CREATE TABLE [database name.[owner].]table name

(<column name> <data type>

[[DEFAULT <constant expression>]

I[IDENTITY [(seed, increment) [NOT FOR REPLICATION]]]]

[ROWGUIDCOL]

[COLLATE <collation name>] [MJLLNOT NULL] [<column constraints>]

[column name AS computed column expression]

[<table constraint>] [, . . .n]

[ON {<filegroup>I DEFAULT}] [TEXTIMAGE ON {<filegroup>DEFAULT}]

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



1 ... 35 36 37 [ 38 ] 39 40 41 ... 346

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика