WebClub - Всероссийский Клуб Веб-разработчиков
WebClub.RU » Советы » Cвойства таблиц данных

Cвойства таблиц данных


Дата публикации: 09-11-2010

Свойства полей были рассмотрены в п.п. 5.4 и 5.5. Они распространяются только на отдельные поля. Свойства для совокупности полей задаются, так называемыми, свойствами таблиц. Они включают в себя:

  • признак уникальности совокупности значений нескольких полей;
  • определение составного первичного ключа;
  • определение составного внешнего ключа;
  • наложение условия на значения совокупности полей.

Для задания свойств таблицы в утилите SQL Central следует установить соединение с базой данных Dubl_Biblia. Затем необходимо в левой или правой панели щелкнуть правой клавишей мыши по пиктограмме требуемой таблицы, например таблицы Books. В результате этого на экране появляется контекстное меню (см. рис. 50).

 

Рассмотрим элементы этого меню.

Выбор пункта Open приводит к отображению в правой панели содержимого папки, соответствующей выбранной таблице.

Пункт View Data позволяет просмотреть содержимое таблицы. Воспользоваться этим пунктом могут пользователи с классом полномочий DBA (см.п. 5.2.), владелец таблицы и пользователи, для которых для данной таблицы установлена привилегия SELECT (см. табл. 7). Реакцией на выбор пункта View Data является последовательное выполнение следующих действий:

  • запуск утилиты ISQL;
  • соединение с текущей базой данных под именем текущего пользователя;
  • выполнение SQL-оператора SELECT:, в результате которого в окно выводится содержимое всех записей таблицы. Для нашего случая этот оператор будет иметь вид:
/* Выбор всех полей таблицы */
SELECT * FROM "Stepanov"."Books"

    ПРИМЕЧАНИЕ

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

Пункт Validate предназначен для запуска утилиты DBVALID (см. табл. 5 - 6).

Она осуществляет проверку соответствия:

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

Применять этот пункт меню могут пользователь с правами администратора базы данных и только на ЭВМ - сервере базы данных.

В утилите ISQL эти действия реализуются следующим SQL-оператором:

/* Проверка индексов и 
целостности таблицы */
DBTOOL VALIDATE TABLES 
'"Stepanov"."Books"' USING /*строка соеди-
 				нения (см. табл. 2) */ 
'DBN=Dubl_Biblia;UID=Stepanov;
PWD=s;ENG=Server_ste1'

Следующим является пункт меню Unload. Данный пункт могут использовать только пользователи с правами администратора базы данных. Он служит для использования утилиты DBUNLOAD (см. табл. 5 - 6). Эта утилита осуществляет выгрузку базы данных. Эта процедура заключается в формировании командного файл и файлов для импорта данных. При этом содержимое таблиц данных записывается в отдельные файлы. Командный файл содержит SQL-операторы, позволяющие создать полную копию базы данных, включая таблицы данных, хранимые процедуры и другие объекты.

Для применения утилиты DBUNLOAD (см. табл. 5 - 6) в утилите ISQL необходимо выполнить оператор DBTOOL вида:

//Выгрузка базы данных
DBTOOL UNLOAD TABLES
TO 'd:\Log_DB\Unload' /* каталог, куда записываются
    файлы с содержимым таблиц */
RELOAD FILE 
TO  'd:\Log_DB\Biblia.sql' //полное имя команд-
 				// ного файла
USING //строка соединения
'DBN=Biblia;UID=Stepanov; PWD=s;
ENG=Server_ste1'
		//строка соединения (см. табл. 2)

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

  • создать новую базу данных;
  • установить с ней соединение под именем DBA в утилите ISQL;
  • выполнить командный файл при помощи SQL-оператора READ, имеющего следующий синтаксис:
/* запуск на исполнение командного 
файла SQL-операторов */
READ <ПУТЬ>,

где ПУТЬ - полное имя командного файла SQL-операторов.

После этого новая база данных становится точной копией исходной.

Реакцией на пункт меню Edit Columns является запуск редактора структуры таблиц. Право использовать этот пункт меню имеют владелец таблицы, пользователи с классом полномочий DBA (см. п. 5.2) и пользователи, для которых для работы с таблицей установлена привилегия ALTER(см. табл. 7).

Выбор пункта Copy позволяет запомнить в системном буфере свойства текущей таблицы с целью копирования их в дальнейшем в другую базу данных. Для этого требуется в текущем сеансе работы утилиты SQL Central осуществить соединение с другой базой данных. Затем для нее отобразить в правой панели содержимое папки Tables. После этого следует щелкнуть в любом свободном месте правой панели правой кнопкой мыши и выбрать в появляющемся контекстном меню пункт Paste. В результате этого на основании данных системного буфера создается копия таблицы первой базы данных.

Следующим пунктом контекстного меню установки свойств таблицы данных является пункт Paste. Применять этот пункт могут только владелец таблицы, пользователи, имеющие для этой таблицы привилегию ALTER (см. табл. 7) и администратор базы данных. Пункт Paste позволяет добавлять в текущую или другую базу данных копию таблицы, информация о которой была запомнена при выборе пункта Copy рассматриваемого меню.

Посредством выбора пункта Delete осуществляется удаление текущей таблицы из базы данных. Это могут сделать только владелец таблицы или администратор базы данных.

В утилите ISQL для исключение таблицы Stepanov.Books из базы необходимо выполнить следующий оператор:

//Удаление таблицы из базы данных
DROP TABLE Stepanov.Books

Последний пункт рассматриваемого меню Properties позволяет проанализировать и модифицировать свойства текущей таблицы. Изменять эти свойства могут только владелец таблицы, пользователи, имеющие для этой таблицы привилегию ALTER (см. табл. 7)и администратор базы данных. Другие пользователи могут только просматривать свойства таблицы.

Выбор пункта меню Properties инициирует появление окна Books Properties.

 

Вкладка General позволяет в случае необходимости изменить название таблицы и отредактировать комментарий к таблице. Кроме того она показывает кто является владельцем таблицы и в какой области базы данных хранится текущая таблица (см. п.1).

В утилите ISQL замена названия таблицы Stepanov.Books на Stepanov.Книги реализуется оператором вида:

//Изменение названия таблицы
ALTER TABLE 
Stepanov.Books RENAME "Книги"

Вкладка Columns предназначена для формирования составного первичного ключа.

ПРИМЕЧАНИЕ

    В одной таблице данных может быть определен только один первичный ключ.

В поле вкладки Columns указывается состав первичного ключа. В частном случае, как показано на рис. 52 первичный ключ может состоять из одного поля. Для расширения состава ключа необходимо выделить поля, которые необходимо ввести в состав ключа. Выделение нескольких полей осуществляется щелком левой клавиши мыши при нажатой клавиши Ctrl. После этого необходимо щелкнуть по кнопке Add To Key. При этом состав первичного ключа будет отображен в поле внизу вкладки. Если затем "нажать" на одну из кнопок OK или Применить, то состав первичного ключа будет зафиксирован в базе данных. Отличие состоит в том, что при использовании кнопки OK окно Books Properties закроется. При щелчке мышью по кнопке Применить это окно останется на экране и пользователь может продолжить модификацию первичного ключа.

Включение в таблице Books в состав первичного ключа полей City_publish и Publisher в дополнение к ключевому полю Code_book в утилите ISQL осуществляется операторами:

//удаление первичного ключа 
ALTER TABLE Stepanov.Books  
DELETE PRIMARY KEY;
//формирование составного первичного ключа
ALTER TABLE Stepanov.Books 
ADD PRIMARY KEY
(Code_book,City_publish,"Publisher")

Элементы управления вкладки Columns позволяют также исключать поля из первичного ключа. Для следует выделить исключаемые поля и воспользоваться кнопкой Remote From Key. Измененный состав ключа опять отобразиться в нижнем поле вкладки. Для удаления всего первичного ключа таблицы можно применить кнопку Remote All.

Все эти действия в ISQL реализуются совокупностью двух SQL-операторов, приведенных выше.

Кнопка Details вкладки Columns позволяет просмотреть все свойства выделенного поля. В утилите ISQL эту информацию можно получить, применив оператор SELECT к системному представлению SYS.SYSCOLUMNS.

Задание признака уникальности и наложение условия для значений совокупности полей осуществляется во вкладке Constraints.

ПРИМЕЧАНИЕ

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

В поле области Uniqueness Constraints данной вкладки отображаются группы полей таблицы с признаками уникальности значений. Для таблицы Books уникальность значений установлена только для одной группы. Она состоит из одного поля Code_book и была автоматически сформирована при определении этого поля первичным ключом таблицы. Для формирования новой группы следует воспользоваться кнопкой New. При этом открывается окно Add Uniqueness Constraint. Оно имеет точно такой же вид как и вкладка Columns .

В утилите ISQL для добавления/удаления совокупности полей с признаком уникальности необходимо выполнить SQL-операторы вида:

/* Добавления новой совокупности 
полей с признаком уникальности /*
ALTER TABLE Stepanov.Books ADD
UNIQUE(City_publish,"Publisher");
/* Удаление совокупности 
полей с признаком уникальности /*
ALTER TABLE Stepanov.Books 
DELETE UNIQUE(City_publish,
"Publisher")

Поле области Check Constraint вкладки Constraints предназначено для задания условия накладываемые на значения таблицы. В утилите ISQL эти действия реализуются следующими операторами:

/* Установка условий для 
значений таблицы */
ALTER TABLE Stepanov.Books 
ADD CHECK(Number>0 AND 
Start_date>=1992);
/* Снятие условий для 
значений таблицы */
ALTER TABLE Stepanov.Books 
DELETE CHECK

Назначение вкладки Permissions (рис. 54) состоит в установлении для пользователей привилегий по манипулированию текущей таблицей.

 

На вкладке Permissions показано, что пользователь Sidorova имеет привилегию SELECT (см. табл. 7) для таблицы Books (см.приложение). Причем он(она) имеет право предоставлять эту привилегию другим пользователям. Такие привилегии данному пользователю предварительно установил автор. Для предоставлении привилегий другим пользователям следует щелкнуть мышью по кнопке Grant.

 

После этого необходимо выделить из предлагаемого списка требуемых отдельных пользователей или/и групп пользователей. Этим самым реализуется назначение индивидуальных или групповых привилегий. На рис. 55 показано выделение пользователей Ivanova, Popova и группы пользователей LIBRARIANS. После этого следует щелкнуть по кнопке Grant Permission. Результат допуска этих пользователей будет отображен в вкладке Permissions .

 

По умолчанию каждому пользователю назначаются все привилегии без права из передачи другим пользователям. Для коррекции привилегий отдельного пользователя следует выделить его как показано на рис. 56. В результате этого становятся доступными группы флажков Permission и Grant option. Установка/снятие флажков в первой группе соответствует назначению/отмене соответствующих привилегий. На рис. 56 показано, что какие привилегии устанавливаются пользователю Petrova. Этому пользователю назначены все привилегии кроме привилегии DELETE (см. табл. 7). Привилегия UPDATE (см. табл. 7) позволяет пользователю Petrova модифицировать только поля Number и Times_read. Уточнение привилегий для подмножества полей таблицы осуществляется при помощи кнопок с многоточием. Кроме того, пользователь Petrova имеет право назначать привилегию SELECT (см. табл. 7) для таблицы Books другим пользователям. Следует отметить, в закладке Permissions (см. рис. 56) можно устанавливать как индивидуальные, так и групповые привилегии. Так на рис. 56 видно, что индивидуальные привилегии установлены для пользователей Petrova, Ivanova и Sidorova. Групповые привилегии определены для группы пользователей LIBRARIANS. Из этого следует, что для всех членов этой группы (пользователей Petrova, Ivanova, Sidorova и Popova) определена привилегия INSERT (см. табл. 7) для работы с таблицей Stepanov.Books. Таким образом, установка данной привилегий для пользователей Petrova и Ivanova является избыточной.

Все действия, произведенные в SQL Central при рассмотрении вкладки Permissions, можно произвести и в утилите .ISQL Для этого следует выполнить последовательность ниже приведенных SQL-операторов:

/* Установление привилегии SELECT
для пользователя Sidorova, с правом ее
передачи другим пользователям */
GRANT SELECT ON Stepanov.Books 
TO Sidorova WITH GRANT OPTION;
/* Установление всех привилегий
для пользователя Ivanova */
GRANT ALL PRIVILEGES ON 
Stepanov.Books TO Ivanova;
/* Установление трех привилегий
для пользователя Petrova */
GRANT ALTER, INSERT, INDEX 
ON Stepanov.Books TO Petrova;
/* Установление привилегии SELECT
для пользователя Petrova, с правом ее
передачи другим пользователям */
GRANT SELECT ON Stepanov.Books 
TO Petrova WITH GRANT OPTION;
/* Установление для пользователя Petrova 
привилегии UPDATE для полей Number и
Times_read */
GRANT UPDATE(Number,Times_read)
ON Stepanov.Books TO Petrova;
/* Установление привилегии INSERT
для группы пользователей LIBRARIANS */
GRANT INSERT ON Stepanov.Books 
TO LIBRARIANS

Последней вкладкой окна свойств таблицы данных является вкладка  Statistics.

 

Вкладка Statistics показывает некоторые физические характеристики текущей таблицы. В поле Number of columns показано количество полей таблицы. Таблица Books состоит из 10 полей. Поле Approximate number of rows отображает примерное число записей таблицы. Таблица Books пока не содержит ни одной записи. В поле Maximum table width указывается максимальная длина записи в байтах. При этом размеры полей с перемененной длинной (см.табл. 8, 14) не учитываются.

В утилите ISQL количество полей таблицы можно определить путем просмотра из перечня. Количество записей в таблице можно определить при выполнении оператора SELECT. Оно отображается при этом в окне Statistics утилиты ISQL.

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

Домен продается

Популярное

Не так давно в сети появился новый сервис, под названием Dead Man Zero. Этот сервис сделал...
Рынок социальных площадок уже давно стал стабильным. Несмотря на то, что время от времени...
Artisteer 4 – единственный в своем роде продукт, позволяющий автоматизировать работу над созданием...
Апрель 2024 (1)
Октябрь 2018 (14)
Февраль 2017 (3)
Январь 2017 (1)
Август 2016 (1)
Май 2016 (2)

Карта сайта: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41

Друзья сайта



Случайная цитата

Боб Хейз:

"Пятнадцать лет назад компании конкурировали друг с другом в цене. Сейчас - это качество. Завтра - это дизайн."

Опрос

Ваша ОС?

Windows XP
Windows 7
др. версия Windows
Linux
др. ОС