Мегаобучалка Главная | О нас | Обратная связь


Синтаксические правила



2019-05-23 216 Обсуждений (0)
Синтаксические правила 0.00 из 5.00 0 оценок




1. "Применимые <привилегии> (<privileges>)" для <имени таблицы> (<table name>) должны включать UPDATE для каждого <имени столбца: поискового> (<object column: searched>).
Замечание: Применимые <привилегии> (<privileges>) для <имени таблицы> (<table name>) определяются в 6.10, "<определение привилегий> (<privileges definition>)".

2. Пусть Т обозначает таблицу, идентифицируемую <именем таблицы> (<table name>). Т не должна быть только читаемой таблицей или таблицей, которая идентифицируется в <разделе from> (<from clause>) любого <подзапроса> (<subquery>), содержащегося в <условии поиска> (<search condition>).

3. <Выражение, вырабатывающее значение> (<value expression>) в <разделе установки: поисковой> (<set clause: searched>) не должно включать <спецификацию функции над множеством> (<set function specification>).

4. Каждое <имя столбца> (<column name>), специфицированное как <объектный столбец: поисковый> (<object column: searched>), должно идентифицировать столбец T. Один <объектный столбец: поисковый> (<object column: searched>) не должен появляться более одного раза в <операторе модификации: поисковом> (<update statement: searched>).

5. Область действия <имени таблицы> (<table name>) - целиком <оператор модификации: поисковый> (<update statement: searched>.

6. Для каждого <раздела установки: поискового> (<set clause: searched>):
а) Если специфицировано неопределенное значение, то для столбца, указанного <объектным столбцом: поисковым> (<object column: searched>), должно допускаться неопределенное значение.
b) Если тип данных столбца, указанного <объектным столбцом: поисковым> (<object column: searched>), является типом символьных строк длины L, то тип данных <выражения, вырабатывающего значение> (<value expression>) должен быть типом символьных строк с длиной меньшей или равной L.
c) Если тип данных столбца, указанного <объектным столбцом: поисковым> (<object column: searched>), является типом точных чисел, то тип данных <выражения, вырабатывающего значение> (<value expression>) должен быть типом точных чисел.
d) Если тип данных столбца, указанного <объектным столбцом: поисковым> (<object column: searched>), является типом приблизительных чисел, то тип данных <выражения, вырабатывающего значение> (<value expression>) должен быть типом приблизительных чисел или типом точных чисел.

Общие правила

1.
а) Если не специфицировано <условие поиска> (<search condition>), то все строки Т являются объектными строками.
b) Если условие поиска специфицировано, то это условие применяется к каждой строке Т с <именем таблицы> (<table name>), связанным с этой строкой, и объектными строками являются все строки, для которых результат <условия поиска> (<search condition>) есть true. Каждый <подзапрос> (<subquery>) в <условии поиска> (<search condition>) фактически выполняется для каждой строки T, и результат используется при применении <условия поиска> (<search condition>) к данной строке Т. Если какой-либо выполняемый <подзапрос> (<subquery>) содержит внешнюю ссылку на столец Т, то она указывает на значение этого столбца в данной строке Т.
Замечание: "Внешняя ссылка" определяется в 5.7, "<column specification">.

2. Каждая объектная строка модифицируется согласно спецификации каждого <раздела установки: поисковой> (<set clause: searched>). <Раздел установки: поисковой> (<set clause: searched>) специфицирует объектный столбец и значение модификации этого столбца. Объектный столбец - это столбец, идентифицированный <объектным столбцом: поисковым> (<object column: searched>). Значение модификации может быть неопределенным значением или значением, специфицируемым <выражением, вырабатывающим значения> (<value expression>). Если <выражение, вырабатывающее значение> (<value expression>) содержит ссылку к столбцу Т, то эта ссылка указывает на значение этого столбца в объектной строке до модификации любого значения объектной строки.

3. Объектная строка модифицируется по следующим шагам:
а) Создается возможная строка, которая является копией объектной строки.
b) Для каждого <раздела установки: поисковой> (<set clause: searched>) значение указанного объектного столбца в возможной строке заменяется на специфицированное значение модификации.
c) Объектная строка заменяется на возможную строку.

4. Если Т- это представляемая таблица, определенная через <определение представления> (<view definition>) с "WITH CHECK OPTION", то если <спецификация запроса> (<query specification>), содержащееся в <определении представления> (<view definition>), включает <раздел where> (<where clause>), не содержащийся в <подзапросе> (<subquery>), то <условие поиска> (<search condition>) этого <раздела where> (<where clause>) должно быть true для возможной строки.

5. Пусть С обозначает объектный столбец. Пусть v обозначает не неопределенное значение модификации С.
a) Если тип данных C есть тип символьных строк, и длина v равна длине C, то значением C становится v.
b) Если тип данных C есть тип символьных строк длины L, и длина M v меньше L, то значением первых M символов C становится v, и в последние L-M символов C устанавливается символ пробела.
c) Если тип данных C есть тип точных чисел, то должно существовать представление значения v в типе данных C такое, чтобы не потерялись никакие первые значащие цифры, и значением C становится это представление.
d) Если тип данных C есть тип приблизительных чисел, то значением C становится приблизительное значение v.

Уровни

Этот стандарт специфицирует два уровня и отдельные средства поддержания целостности данных.

Средства поддержания целостности данных образуют следующие синтаксические конструкции вместе с Синтаксическими правилами и Общими правилами:

1. <Раздел умолчаний> (<default clause>)

2. все опции <ограничения на столбец> (<column constraint>), отличные от NOT NULL и NOT NULL UNIQUE

3. все опции <определения ограничения на таблицу> (<table constraint definition>), кроме опции UNIQUE <список столбцов уникальности> (UNIQUE (<unique column list>)).

4. <действие> REFERENCES <список столбцов передачи> (<action> REFERENCES [ (<grant column list>)])

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

1. 4.16, "Транзакции":
а) Первое предложение параграфа 1 заменяется следующим:
Транзакция - это последовательность операций, включающая операции над базой данных, которые являются атомарными по отношению к восстановлению.
b) Параграф 2 удаляется.
c) Второе предложение параграфа 3 удаляется.

2. 5.3, "Лексемы (<token>):
<Идентификатор> (<identifier>) не должен состоять более чем из 12 символов.

3. 5.4, "Имена":
<Имя таблицы> (<table name>) не должно содержать <идентификатор полномочий> (<authorization identifier>).

4. 5.6, "<Спецификация значения> (<value specification>) и <спецификация цели> (<target specification>)":
а) <Спецификация значения> (<value specification>) не должна содержать USER.
b) <Спецификация параметра> (<parameter specification>) не должна специфицировать <парамететр-индикатор> (<indicator parameter>).
c) <Спецификация переменной> (<variable specification>) не должна специфицировать <переменную-индикатор> (<indicator variable>).

5. 5.7, "<Спецификация столбца> (<column specification>)" :
К синтаксическому правилу 4 добавляется следующее:

o <Спецификация столбца> (<column specification>) не должна быть внешней ссылкой.

6. 5.8, "<Спецификация функции над множеством> (<set function specification>)" 5.24, <Подзапрос> (<subquery>), и 5.25, <Cпецификация запроса> (<query specification>):

o <Функция надо всеми элементами множества> (<all set function>), <подзапрос> (<subquery>) и <спецификация запроса (<query specification>) не должны содержать ALL.


Замечание: на уровне 1 сохранение дубликатов специфицируется отсутствием DISTINCT.

7. 5.8, "<Спецификация функций над множеством> (<set function specification>)":

o <Функция над различными элементами множества> (<distinct set function>) не должны включать AVG, MAX, MIN или SUM.

8. 5.11, "<Предикат сравнения> (<comaprison predicate>)" : <Оператор сравнения> (<comp op>) не должен включать "<>". Замечание: на уровне 1 сравнение в форме "A <> B" выражается через эквивалент "NOT A=B".

9. 5.14, "<предикат like> (<like predicate>):
а) <Предикат like> (<like predicate>) не должен специфицировать ESCAPE <символ escape> (<escape character>).
b) <Предикат like> (<like predicate>) не должен специфицировать NOT.
Замечание: на уровне 1 <предикат like> (<like predicate>), содержащий NOT, может быть выражен в эквивалентной форме <условия поиска> (<search condition>): "NOT <like predicate>".

10. 5.17, "<предикат exists> (<exists predicate>)":

o <Предикат> (<predicate>) не должен специфицировать <предикат exists> (<exists predicate>).

11. 5.22, "<раздел group by>" (<group by clause>)":
Следующее предложение добавляется к Общему правилу 2:

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

12. 5.25, "<Спецификация запроса> (<query specification>)":
Синтаксическое правило 11 заменяется на следующее:

o Распознавание того, является ли <спецификация запроса> (<query specification>) изменяемой или только читаемой, определяется в реализации.

13. 6.1, "<Схема> (<schema>)":
<Схема> (<schema>) не должна специфицироваться.
Уровень 1 реализации должен обеспечивать некоторый механизм связи <идентификатора полномочий> (<authorization identifier>) с <определением таблицы> (<table definition>), <определением представления> (<view definition>) или <определением привилегий> (<privileges definition>).

14. 6.2, "<Определение таблицы> (<table definition>)":
<Определение таблицы> (<table definition>) не должно содержать <определение огpаничения уникальности> (<unique constraint definition>). Уровень реализации 1 должен обеспечивать некоторый механизм спецификации ограничения таблицы, связанного с уникальностью.

15. 6.3, "<Определение столбцов> (<column definition>):
а) <Тип данных> (<data type>) в <определении столбца> (<column definition>) не должен включать REAL, DOUBLE, PRECISION и NUMERIC.
b) <Определение столбца> (<column definition>) столбца не должно специфицировать NOT NULL.
c) <Определение столбца> (<column definition>) столбца не должно специфицировать UNIQUE.

16. 6.9, "<Определение представления> (<view definition>):
<Определение представления> (<view definition>) не должно содержать WITH CHECK OPTION.

17. 6.10, "<Определение привилегий> (<privilege definition>)" :
<Определение привилегий> (<privileges definition>) не должно содержать WITH GRANT OPTION.

18. 7.3, "<Процедура> (<procedure>):
а) Cинтаксическое правило 8 (a) (2) заменяется на следующее:
Любой <тип данных> (<data type>) в <объявлении параметра> (<parameter declaration>) должен специфицировать тип CHARACTER.
b) В общем правиле 3 случай (a) каждое вхождение числа "100" заменяется на слова "положительное число со значением, определяемым реализацией"
c) Общее правило 3 (b) (1) заменяется на следующее:
В реализации определяется, аннулируются ли при выполнении S изменения, произведенные в базе данных.

19. 8.3, "<Объявление курсора> (<declare cursor>)":
а) <Спецификация сортировки> (<sort specification>) не должна содержать <целых без знака> (<unsigned integer>).
b) <Спецификация сортировки> (<sort specification>) не должна содержать ASC.
Замечание: на уровне 1 порядок по возрастанию специфицируется отсутствием опции DESC.
c) <Выражение запроса> (<query expression>) не должно содержать UNION.
Замечание: на уровне 1 функция объединения не поддерживается.

20. 8.7, "<Оператор вставки> (<insert statement>) :
<Оператор вставки> (<insert statement>) не должен содержать <спецификацию запроса> (<query specification>).

21. 8.11, "<Оператор модификации: позиционный> (<update statement: positioned>)" и <оператор удаления: поизиционный> (<delete statement: positioned>):
<Оператор SQL> (<SQL statement>) не должен специфицировать <оператор модификации: позиционный> (<update statement: positioned>) или <оператор удаления: позиционный> (<delete statement: positioned>).

 



2019-05-23 216 Обсуждений (0)
Синтаксические правила 0.00 из 5.00 0 оценок









Обсуждение в статье: Синтаксические правила

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (216)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.009 сек.)