Базы данных - модели, разработка, реализация

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


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

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

В состав СУБД INGRES входит специальная системная утилита, имеющая имя CREATEDB, которая позволяет создавать новые базы данных. Права на использование этой утилиты имеет администратор сервера. Для удаления базы данных существует соответствующая утилита DESTROYDB.

В СУБД MS SQL Server существует специальный оператор CREATE DATABASE, который является частью языка определения данных, для удаления базы данных

149

в языке определен оператор DROP DATABASE. Правами на создание баз данных наделяются администраторы баз данных, которых в общем случае может быть несколько. Правами более высокого уровня обладает администратор сервера баз данных (SQL Server), который и может предоставить права администратора базы данных другим пользователям сервера. Администраторы баз данных могут удалить только свою базу данных. Приведем пример оператора создания схемы базы данных в MS SQL Server 7.0:

  • CREATE DATABASE database_name
  • [ON [PRIMARY][[...n]][. [...n]]]
  • [ LOG ON { [....n]} ][ FOR LOAD | FOR ATTACH ]
  • :: =
  • ( [ NAME = логическое имя файла,]FILENAME = ?физическое имя файла?
  • [. SIZE - размер][, MAXSIZE - { максимальный размер | UNLIMITED } ]
  • [. FILEGROWTH = инкремент увеличения файла] ) [...n]


  • ::= FILEGROUP имя группы файлов спецификация файла> [...n]
  • Здесь

  • database_name - имя базы данных, идентификатор в системе;
  • ON - ключевое слово, которое означает, что далее будут заданы спецификации файлов, которые будут использованы для размещения базы данных;
  • PRIMARY - ключевое слово, которое определяет первичное файловое пространство, в котором будет размещена собственно база данных;



  • LOG ON - ключевое слово, которое задает спецификацию файлов, которые будут использованы для хранения журналов транзакций;


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


  • FOR ATTACH - предложение, которое определяет, что база данных для управления будет подсоединена к другому серверу.


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

  • CREATE DATABASE Library


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

  • ALTER DATABASE database


  • { ADD FILE [...n] [TO FILEGROUP filegroup_name]


  • | ADD LOG FILE [...n]


  • | REMOVE FILE имя_файла


  • | ADD FILEGROUP имя_группы файлов


  • [REMOVE FILEGROUP имя группы_файлов


  • 150

  • |MODIFY FILE


  • |MODIFY FILEGROUP имя_группы_файлов имя_свойства_группы файлов}


  • Здесь свойства группы файлов определяет одно из допустимых ключевых слов:

  • READONLY - только для чтения;


  • READWRITE - для чтения и записи;


  • DEFAULT - назначает данную группу файлов в качестве группы по умолчанию, в которой размещаются данные, если не задано дополнительных условий размещения информации.


  • Как видно, при изменении схемы базы данных в нее могут быть добавлены (ADD) дополнительные файлы и файловые группы или удалены (REMOVE ) ранее определенные файлы или файловые группы. Назначение этих файлов нам будет более понятно после того, как мы познакомимся с физическими моделями и файловыми структурами, используемыми для хранения данных в базах данных.

    Сейчас мы познакомимся с последней командой, которая предназначена для удаления базы данных. В MS SQL Server 7.0 это команда имеет следующий синтаксис:

  • DROP DATABASE database_name


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

    Содержание раздела