Работа в редакторе Validation Rule
Редактор Validation Rule позволяет Вам создать ограничение при проверке, которое называется правилом валидации. Правило валидации - это выражение, которое задает диапазон допустимых значений, которые можно хранить в колонке, и определяет, является ли вводимое значение допустимым. Например в таблице MOVIE_RENTAL_RECORD значение, вводимое в колонку due_date, должно быть больше значения, вводимого в колонку rental_date. Чтобы усилить это ограничение, Вам нужно создать правило валидации с именем Due Date, которое содержит выражение (в синтаксисе СУБД), например такое: due_date>rental_date. Использование этого правила валидации гарантирует, что дата истечения договора больше. чем (наступает позже, чем) дата его заключения. СУБД выдает сообщение об ошибке, если вводимая дата истечения договора меньше, чем (наступает раньше, чем) дата его заключения.
Список в верхней части редактора Validation Rule содержит все существующие правила валидации. Для создания нового правила валидации введите имя правила в текстовое окно 'Name' и нажмите кнопку 'New'. После этого введите выражение, которое Вы хотите применить в правиле валидации, в текстовое окно 'Server Expression' или войдите в редактор Valid Value и создайте множество допустимых значений для правила валидации.
Если Вы хотите ввести выражение в синтаксисе СУБД, щелкните по текстовому окну 'Server Expression <DB> Rule' и введите выражение, соблюдая синтакис выбранной Вами СУБД. Если Вы хотите создать множество допустимых значений, нажмите кнопку 'Valid Value...' для входа в редактор Valid Value и создайте список допустимых значений для правила валидации. После того как Вы нажмете 'ОК', Вы вернетесь в редактор Validation Rule. Если Вы нажмете кнопку 'Server Expr', то ERwin создаст выражение - команду языка СУБД, содержащую список допустимых значений, введенный Вами. См. далее в этой главе 'Работа в редакторе Valid Value'.
По умолчанию ERwin создает выражение - команду языка СУБД, используя значения, связанные с правилом валидации, и разделяя значения запятыми (например, C,D,M).
В некоторых случаях правила синтаксиса данной СУБД требуют, чтобы каждое значение в команде заключалось в апострофы ('C', 'D', 'M'). Чтобы автоматически заключить каждое значение в апострофы, щелкните по check box 'Quote Value' и поставьте в него метку Х. Если Вы хотите убрать апострофы, можно отредактировать выражение и удалить их в текстовом окне 'Server Expression- <DB> Rule'.
Чтобы изменить правило валидации, выберите правило в списке 'Validation Name' в верхней части редактора, измените соответствующие характеристики и нажмите кнопку 'Update'. Чтобы уладить праило валидации, выберите правило в списке 'Validation Name' и нажмите кнопку 'Update'.
Вы можете также использовать check box 'Copy' в верхней части редактора, чтобы присвоить список допустимых значений. связанный с имеющимся правилом валидации, новому правилу. Чтобы присвоить список допустимых значений, выберите правило валидации, которое Вы хотите использовать в качестве источника, и поставьте метку Х в Check box 'Copy'. После этого создайте новое правило валидации. ERwin копирует допустимые значения из источника в новое правило валидации и создает подходящее выражение на языке СУБД для присвоенных Вами допустимых значений.
После того как Вы создали правило валидации, Вы можете присвоить его одной или несольким колонкам в редакторе Column Property. Чтобы присвоить правило, войдите в редактор Column Property, выберите колонку, с которой Вы хотите связать правило валидации, и выберите правило из списка 'Valid'. См. далее в этой главе раад. 'Работа в редакторе Column Property'.
Если текущая СУБД - SYBASE, версия 10 (только эта СУБД), редактор Validation Rule будет содержать кнопки 'sp_bindrule' и 'CHECK Constraint' (и, кроме них, средства управления, о которых говорилось выше), которые позволяют Вам определить, каким образом ERwin будет генерировать правило валидации, присваиваемое колонке в схеме по умолчанию. Для создания отдельного выражения языка, которое определяет правило валидации, и связывания этого правила с колонкой нажмите кнопку 'sp_bindrule'.
Для включения выражения языка CHECK Constraint, которое определяет ограничивающее значение (значения) для колонки в команде CREATE TABLE, нажмите кнопку 'CHECK Constraint'. См. также Руководство по SYBASE SQL Server.
Как создать правило валидации
1. Дайте команду 'Validation Rule...' в меню Server для входа в редактор Validation Rule.
2. Введите имя правила, которое Вы хотите создать, в текстовое окно 'Name'. Например, можно ввести Due Date в качестве имени правила, определяющего, когда нужно вернуть фильм.
3. Нажмите кнопку 'Valid Value...' для входа в редактор Valid Value.
4. Создайте выражение - команду языка СУБД или присвойте набор допустимых значений.
· Чтобы связать список допустимых значений с новым правилом валидации, выберите существующее правило из списка 'Validation Name'. Поставьте метку Х в окно 'Copy'. Введите имя нового правила в теккстовое окно 'Name' и нажмите кнопку 'New'. ERwin свяжет значения, заданные для старого правила, с новым. Чтобы отредактировать список допустимых значений, связанный с новым правилом, нажмите кнопку 'Valid Value...' для входа в редактор Valid Value.
· Чтобы ввести выражение для правила валидации, введите выражение в текстовое окно 'Server Expression <DB>', соблюдая синтаксис языка СУБД. Например, чтобы показать, что дата истечения договора должна наступать после даты заключения договора, введите: due_date > rental_date.
· Чтобы создать множество допустимых значений для правила валидации (например, С,D,M), нажмите кнопку 'Valid Value...' для входа в редактор Valid Value. Введите значения и нажмите 'ОК' для возвращения в редактор Validation Rule. Чтобы создать выражение для списка значений, нажмите кнопку 'Server Expr...'. ERwin создаст выражение, используя допустимые значения, например: @ VALUE IN [C,D,M]. См. далее в этой главе 'Работа в редакторе Valid Value'.
· Чтобы заключить каждое допустимое значение в апострофы, поставьте метку Х в окно 'Quote Value'. ERwin создаст выражение, где каждое значение заключено в апострофы (например, 'C','D','M').
5. Нажмите 'ОК' для выхода из редактора и возвращения в диаграмму. Нажмите 'Cancel' для отмены всей работы, проделанной Вами в текущем сеансе редактирования.
Если Вы введете имя правила валидации и нажмете кнопку 'Valid Value...' до нажатия кнопки 'New', то ERwin выведет на экран окно-диалог, в котором спросит, хотите ли Вы создать новое правило, переименовать уже имеющееся или вернуться в редактор Validation Rule. Щелкните по одной из кнопок, чтобы выбрать ответ, затем нажмите 'ОК'. ERwin отреагирует в соответствии с Вашим выбором.
Как изменить правило валидации
1. Дайте команду 'Validation Rule...' в меню Server для входа в редактор Validation Rule.
2. Введите имя правила, которое Вы хотите изменить, в текстовое окно 'Name'.
· Чтобы изменить имя правила валидации, щелкните по текстовому окну 'Name', удалите старое имя с помощью DELETE или BACKSPACE и введите новое.
· Чтобы отредактировать выражение, щелкните по текстовому окну 'Server Expression - <DB> Rule' и, пользуясь стандартными клавишами для редактирования, измените выражение.
· Чтобы изменить допустимые значения, нажмите кнопку 'Valid Value...' для входа в редактор Valid Value. Пользуйтесь средствами редактора для удаления или изменения значений. Нажмите 'ОК' для выхода из редактора Valid Value и возвращения в редактор Validation Rule. ERwin изменяет содержимое списков 'Valid Value' и Server Expression на основе изменений, сделанных Вами в редакторе Valid Value. См. далее в этой главе 'Работа в редакторе Valid Value'.
3. Закончив изменения, нажмите 'ОК' для выхода из редактора и возвращения в диаграмму. Нажмите 'Cancel' для отмены всей работы, проделанной Вами в текущем сеансе.
Как удалить правило валидации
1. Дайте команду 'Validation Rule...' в меню Server для входа в редактор Validation Rule.
2. Щелкните по имени правила, которое Вы хотите удалить, в списке 'Validation Name'.
3. Нажмите кнопку 'Delete'. ERwin удаляет правило из списка.
4. Нажмите 'ОК' для выхода из редактора и возвращения в диаграмму.Нажмите 'Cancel' для отмены всей работы, проделанной Вами в текущем сеансе.