Язык модулей SQL
| Категория реферата: Рефераты по информатике, программированию
| Теги реферата: доклади, конспект урока изложения
| Добавил(а) на сайт: Zakrjatin.
Предыдущая страница реферата | 1 2 3 4
Формат
<update statement: positioned> ::= UPDATE <table name> SET <set clause:positioned> [{,<set clause:positioned>}...] WHERE CURRENT OF <cursor name> <set clause: positioned> ::= <object column:positioned> = NULL <object column: positioned> ::= <column name>Синтаксические правила
"Применимые <привилегии> (<privileges>)" к <имени таблицы> (<table name>) должны включать привилегию UPDATE для каждого <объектного столбца: позиционного> (<object column: positioned>).Замечание: "Применимые <привилегии> (<privileges>)" для <имени таблицы> (<table name>) определяются в 6.10, "<определение привилегий> (<privileges definition>)". Содержащий <модуль> (<module>) должен содержать <объявление курсора> (<declare cursor>) CR с тем же <именем курсора> (<cursor name>), что и <имя курсора> (<cursor name>) в <операторе модификации: позиционном> (<update statement: positioned>). Таблица, на которую указывает CR, не должна быть только читаемой. Пусть Т обозначает таблицу, идентифицируемую <именем таблицы> (<table name>). Т должна быть таблицей, идентифицированной в первом <разделе from> (<from clause>) <спецификации курсора> (<cursor specification>) CR. <Выражение, вырабатывающее значение> (<value expression>) в <разделе установки: позиционной> (<set clause: positioned>) не должно включать <спецификацию функции над множеством> (<set function specification>). Каждое <имя столбца> (<column name>), специфицированное как <объектный столбец: позиционный> (<object column: positioned>), должно идентифицировать столбец T. Один <объектный столбец: позиционный> (<object column: positioned>) не должен появляться более одного раза в <операторе модификации: позиционном> (<update statement: positioned>). Область действия <имени таблицы> (<table name>) - целиком весь оператор <модификации: позиционный> (<update statement: positioned>). Для каждого <раздела установки: позиционного> (<set clause: positioned>):
а) Если специфицировано неопределенное значение, то для столбца, указанного <объектным столбцом: позиционным> (<object column: positioned>), должно до пускаться неопределенное значение.
b) Если тип данных столбца, указанного <объектным столбцом: позиционным> (<object column: positioned>), является типом символьных строк длины L, то тип данных <выражения, вырабатывающего значение> (<value expression>) должен быть типом символьных строк с длиной, меньшей или равной L.
c) Если тип данных столбца, указанного <объектным столбцом: позиционным> (<object column: positioned>), является типом точных чисел, то тип данных <выражения, вырабатывающего значение> (<value expression>) должен быть типом точных чисел.
d) Если тип данных столбца, указанного <объектным столбцом: позиционным> (<object column: positioned>), является типом приблизительных чисел, то тип данных <выражения, вырабатывающего значение> (<value expression>) должен быть типом приблизительных чисел или типом точных чисел.
Общие правила
Курсор CR должен быть установлен на строку. Объектная строка является такой строкой, из которой порождена текущая строка CR. Объектная строка модифицируется согласно спецификации каждого <раздела установки: позиционной> (<set clause: positioned>). <Раздел установки: позиционной> (<set clause: positioned>) специфицирует объектный столбец и значение модификации этого столбца. Объектный столбец - это столбец, идентифицированный <объектным столбцом: позиционным> (<object column: positioned>) в <разделе установки: позиционной> (<set clause: positioned>). Значение модификации может быть неопределенным значением или значением, специфицируемым <выражением, вырабатывающим значения> (<value expression>). Если <выражение, вырабатывающее значение> (<value expression>) содержит ссылку к столбцу Т, то эта ссылка указывает на значение этого столбца в объектной строке до модификации любого значения объектной строки. Объектная строка модифицируется по следующим шагам:а) Создается возможная строка, которая является копией объектной строки.
b) Для каждого <раздела установки: позиционной> (<set clause: positioned>) значение указанного объектного столбца в возможной строке заменяется на специфицированное значение модификации.
c) Объектная строка заменяется на возможную строку. Если Т- это представляемая таблица, определенная через <определение представления> (<view definition>) с "WITH CHECK OPTION", то если <спецификация запроса> (<query specification>), содержащееся в <определении представления> (<view definition>), включает <раздел where> (<where clause>), не содержащийся в <подзапросе> (<subquery>), то <условие поиска> (<search condition>) этого <раздела where> (<where clause>) должно быть true для возможной строки. Пусть С обозначает объектный столбец. Пусть 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. 8.12 <Оператор модификации: поисковый> (<update statement: searched>)
Функция
Модифицирует строки таблицы.
Формат
<update statement: searched> ::= UPDATE <table name> SET <set clause: searched> [{,<set clause: searched>}...] [WHERE <search conditions>] <set clause: searched> ::= <object column: searched> = NULL <object column: searched> ::= <column name>Синтаксические правила
"Применимые <привилегии> (<privileges>)" для <имени таблицы> (<table name>) должны включать UPDATE для каждого <имени столбца: поискового> (<object column: searched>).Замечание: Применимые <привилегии> (<privileges>) для <имени таблицы> (<table name>) определяются в 6.10, "<определение привилегий> (<privileges definition>)". Пусть Т обозначает таблицу, идентифицируемую <именем таблицы> (<table name>). Т не должна быть только читаемой таблицей или таблицей, которая идентифицируется в <разделе from> (<from clause>) любого <подзапроса> (<subquery>), содержащегося в <условии поиска> (<search condition>). <Выражение, вырабатывающее значение> (<value expression>) в <разделе установки: поисковой> (<set clause: searched>) не должно включать <спецификацию функции над множеством> (<set function specification>). Каждое <имя столбца> (<column name>), специфицированное как <объектный столбец: поисковый> (<object column: searched>), должно идентифицировать столбец T. Один <объектный столбец: поисковый> (<object column: searched>) не должен появляться более одного раза в <операторе модификации: поисковом> (<update statement: searched>). Область действия <имени таблицы> (<table name>) - целиком <оператор модификации: поисковый> (<update statement: searched>. Для каждого <раздела установки: поискового> (<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>) должен быть типом приблизительных чисел или типом точных чисел.
Общие правила
а) Если не специфицировано <условие поиска> (<search condition>), то все строки Т являются объектными строками.
b) Если условие поиска специфицировано, то это условие применяется к каждой строке Т с <именем таблицы> (<table name>), связанным с этой строкой, и объектными строками являются все строки, для которых результат <условия поиска> (<search condition>) есть true. Каждый <подзапрос> (<subquery>) в <условии поиска> (<search condition>) фактически выполняется для каждой строки T, и результат используется при применении <условия поиска> (<search condition>) к данной строке Т. Если какой-либо выполняемый <подзапрос> (<subquery>) содержит внешнюю ссылку на столец Т, то она указывает на значение этого столбца в данной строке Т.
Замечание: "Внешняя ссылка" определяется в 5.7, "<column specification">. Каждая объектная строка модифицируется согласно спецификации каждого <раздела установки: поисковой> (<set clause: searched>). <Раздел установки: поисковой> (<set clause: searched>) специфицирует объектный столбец и значение модификации этого столбца. Объектный столбец - это столбец, идентифицированный <объектным столбцом: поисковым> (<object column: searched>). Значение модификации может быть неопределенным значением или значением, специфицируемым <выражением, вырабатывающим значения> (<value expression>). Если <выражение, вырабатывающее значение> (<value expression>) содержит ссылку к столбцу Т, то эта ссылка указывает на значение этого столбца в объектной строке до модификации любого значения объектной строки. Объектная строка модифицируется по следующим шагам:
а) Создается возможная строка, которая является копией объектной строки.
b) Для каждого <раздела установки: поисковой> (<set clause: searched>) значение указанного объектного столбца в возможной строке заменяется на специфицированное значение модификации.
c) Объектная строка заменяется на возможную строку. Если Т- это представляемая таблица, определенная через <определение представления> (<view definition>) с "WITH CHECK OPTION", то если <спецификация запроса> (<query specification>), содержащееся в <определении представления> (<view definition>), включает <раздел where> (<where clause>), не содержащийся в <подзапросе> (<subquery>), то <условие поиска> (<search condition>) этого <раздела where> (<where clause>) должно быть true для возможной строки. Пусть С обозначает объектный столбец. Пусть 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. Уровни
Этот стандарт специфицирует два уровня и отдельные средства поддержания целостности данных.
Средства поддержания целостности данных образуют следующие синтаксические конструкции вместе с Синтаксическими правилами и Общими правилами:
<Раздел умолчаний> (<default clause>) все опции <ограничения на столбец> (<column constraint>), отличные от NOT NULL и NOT NULL UNIQUE все опции <определения ограничения на таблицу> (<table constraint definition>), кроме опции UNIQUE <список столбцов уникальности> (UNIQUE (<unique column list>)). <действие> REFERENCES <список столбцов передачи> (<action> REFERENCES [ (<grant column list>)])Уровень 2 - это полный язык базы данных SQL, не включающий средства улучшения целостности данных. Уровень 1 - это подмножество уровня 2, которое подчиняется следующим дополнительным правилам.
4.16, "Транзакции":а) Первое предложение параграфа 1 заменяется следующим:
Транзакция - это последовательность операций, включающая операции над базой данных, которые являются атомарными по отношению к восстановлению.
b) Параграф 2 удаляется.
c) Второе предложение параграфа 3 удаляется. 5.3, "Лексемы (<token>):
<Идентификатор> (<identifier>) не должен состоять более чем из 12 символов. 5.4, "Имена":
<Имя таблицы> (<table name>) не должно содержать <идентификатор полномочий> (<authorization identifier>). 5.6, "<Спецификация значения> (<value specification>) и <спецификация цели> (<target specification>)":
а) <Спецификация значения> (<value specification>) не должна содержать USER.
b) <Спецификация параметра> (<parameter specification>) не должна специфицировать <парамететр-индикатор> (<indicator parameter>).
c) <Спецификация переменной> (<variable specification>) не должна специфицировать <переменную-индикатор> (<indicator variable>). 5.7, "<Спецификация столбца> (<column specification>)" :
К синтаксическому правилу 4 добавляется следующее: <Спецификация столбца> (<column specification>) не должна быть внешней ссылкой. 5.8, "<Спецификация функции над множеством> (<set function specification>)" 5.24, <Подзапрос> (<subquery>), и 5.25, <Cпецификация запроса> (<query specification>): <Функция надо всеми элементами множества> (<all set function>), <подзапрос> (<subquery>) и <спецификация запроса (<query specification>) не должны содержать ALL.
Замечание: на уровне 1 сохранение дубликатов специфицируется отсутствием
DISTINCT.
а) <Предикат like> (<like predicate>) не должен специфицировать ESCAPE <символ escape> (<escape character>).
b) <Предикат like> (<like predicate>) не должен специфицировать NOT.
Замечание: на уровне 1 <предикат like> (<like predicate>), содержащий NOT, может быть выражен в эквивалентной форме <условия поиска> (<search condition>): "NOT <like predicate>". 5.17, "<предикат exists> (<exists predicate>)": <Предикат> (<predicate>) не должен специфицировать <предикат exists> (<exists predicate>). 5.22, "<раздел group by>" (<group by clause>)":
Следующее предложение добавляется к Общему правилу 2: Группирование строк, в которых значения одного или нескольких столбцов группировки являются неопределенными, определяется в реализации. 5.25, "<Спецификация запроса> (<query specification>)":
Синтаксическое правило 11 заменяется на следующее: Распознавание того, является ли <спецификация запроса> (<query specification>) изменяемой или только читаемой, определяется в реализации. 6.1, "<Схема> (<schema>)":
<Схема> (<schema>) не должна специфицироваться.
Уровень 1 реализации должен обеспечивать некоторый механизм связи <идентификатора полномочий> (<authorization identifier>) с <определением таблицы> (<table definition>), <определением представления> (<view definition>) или <определением привилегий> (<privileges definition>). 6.2, "<Определение таблицы> (<table definition>)":
<Определение таблицы> (<table definition>) не должно содержать <определение огpаничения уникальности> (<unique constraint definition>). Уровень реализации 1 должен обеспечивать некоторый механизм спецификации ограничения таблицы, связанного с уникальностью. 6.3, "<Определение столбцов> (<column definition>):
а) <Тип данных> (<data type>) в <определении столбца> (<column definition>) не должен включать REAL, DOUBLE, PRECISION и NUMERIC.
b) <Определение столбца> (<column definition>) столбца не должно специфицировать NOT NULL.
c) <Определение столбца> (<column definition>) столбца не должно специфицировать UNIQUE. 6.9, "<Определение представления> (<view definition>):
<Определение представления> (<view definition>) не должно содержать WITH CHECK OPTION. 6.10, "<Определение привилегий> (<privilege definition>)" :
<Определение привилегий> (<privileges definition>) не должно содержать WITH GRANT OPTION. 7.3, "<Процедура> (<procedure>):
а) Cинтаксическое правило 8 (a) (2) заменяется на следующее:
Любой <тип данных> (<data type>) в <объявлении параметра> (<parameter declaration>) должен специфицировать тип CHARACTER.
b) В общем правиле 3 случай (a) каждое вхождение числа "100" заменяется на слова "положительное число со значением, определяемым реализацией"
c) Общее правило 3 (b) (1) заменяется на следующее:
В реализации определяется, аннулируются ли при выполнении S изменения, произведенные в базе данных. 8.3, "<Объявление курсора> (<declare cursor>)":
а) <Спецификация сортировки> (<sort specification>) не должна содержать <целых без знака> (<unsigned integer>).
b) <Спецификация сортировки> (<sort specification>) не должна содержать ASC.
Замечание: на уровне 1 порядок по возрастанию специфицируется отсутствием опции DESC.
c) <Выражение запроса> (<query expression>) не должно содержать UNION.
Замечание: на уровне 1 функция объединения не поддерживается. 8.7, "<Оператор вставки> (<insert statement>) :
<Оператор вставки> (<insert statement>) не должен содержать <спецификацию запроса> (<query specification>). 8.11, "<Оператор модификации: позиционный> (<update statement: positioned>)" и <оператор удаления: поизиционный> (<delete statement: positioned>):
<Оператор SQL> (<SQL statement>) не должен специфицировать <оператор модификации: позиционный> (<update statement: positioned>) или <оператор удаления: позиционный> (<delete statement: positioned>).
Скачали данный реферат: Леонина, Питирим, Marlen, Симона, Jakovichenko, Садков, Ворожцов.
Последние просмотренные рефераты на тему: конфликт реферат, рефераты, сочинение на тему зима, реферат на тему дети.
Категории:
Предыдущая страница реферата | 1 2 3 4