46104 (751194)

Файл №751194 46104 (Язык модулей SQL)46104 (751194)2016-08-02СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла

Язык модулей SQL

7.1 ()

Функция

Определяет модуль.

Формат

::=

[...]

...

::=

LANGUAGE { COBOL | FORTRAN | PASCAL | PLI }

::=

AUTHORIZATION

::=

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

  1. Для каждого () в () должна существовать ровно одна () в этом (), которая содержит () со спецификацией (), объявленного в ().

  2. () должен быть ассоциирован с прикладной программой при ее выполнения. Прикладная программа должна быть ассоциирована не более чем с одним ().

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

  1. Если () () специфицирует COBOL (соответственно FORTRAN, PASCAL, PLI) и если агент, выполняющий вызов () этого (), не является стандартной программой на языке COBOL (соответственно FORTRAN, Pascal, PL/1), то результат неопределен.

  2. После выполнения агентом на языке программирования последнего вызова () в () неявно выполняется () или (). Выбор одного из этих () определяется реализацией. Если имеет место невосстанавлваемая ошибка, то СУБД должна выполнить ().

7.2. ()

Функция

Задает имя ().

Формат

::=

MODULE []

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

  1. () должно отличаться от () любого другого () в том же окружении. Понятие окружения определяется в реализации.

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

  1. () определяет необязательный () как (), определяющее содержащий () в данном окружении.

7.3. ()

Функция

Определяет процедуру и оператор языка SQL.

Формат

::=

PROCEDURE

...;

;

::=

|

::=

SQLCODE

::=

|

|

|

|

|

|

|

|

|

|

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

  1. () должно отличаться от () любой другой () в содержащем модуле.

  2. в каждом () в () должно отличаться от () любого другого () в этой процедуры.

  3. Любое (), содержащееся в () (), должно быть специфицировано в () этой процедуры.

  4. Если () в () совпадает с () в () (), содержащей этот (), то (), которая содержит это (), должна содержать ().

  5. Законный вызов () должен поставлять n параметров, где n - число () в данной ().

  6. Процедура должна содержать ровно один (). На параметр, соответствующий параметру SQLCODE, ссыля4аются я0как я4на параметр SQLCODE.

  7. () процедуры явля () содержащего ().


  8. a) Если () специфицирует COBOL, то:


    • i) Типом параметра SQLCODE должен быть COMPUTATIONAL S9(PC), где PC - определяемая реализацией точность, большая или равная 4.
      ii) Любой () в () должен быть CHARACTER или NUMERIC.
      iii) Если i-ое () специфицирует () CHARACTER(L) c некоторой () L, то тип i-ого параметра должен быть буквенно-цифровым типом языка COBOL длины L.
      iv) Если i-ое () специфицирует () NUMERIC(P,S) c некоторыми () P и () S, то типом i-ого параметра должен быть тип языка COBOL usage DISPLAY SIGN LEADING SEPARATE со следующим PICTURE:

      1. Если S=P, то PICTURE: "S", за которым следует "V", и затем P экземпляров "9".

      2. Если P > S > 0, то PICTURE: "S", за которым следуют P-S экземпляров "9", затем "V" и затем S экземпляров "9".

      3. Если S=O, то PICTURE: "S", за которым следуют P экземпляров "9" и затем необязательное "V".


b) Если () специфицирует FORTRAN, то:


    • i) Тип параметра SQLCODE должен быть типом INTEGER языка FORTRAN.
      ii) Любой () в должен быть CHARACTER, INTEGER, REAL или DOUBLE PRECISION.
      iii) Если i-ое () специфицирует () CHARACTER(L) с некоторой () L, то тип i-ого параметра должен быть типом CHARACTER языка FORTRAN с длиной L.
      vi) Если i-ое () специфицирует () данных INTEGER, REAL или DOUBLE PRECISION, то тип i-ого параметра должен быть соответственно INTEGER, REAL или DOUBLE PRECISION языка FORTRAN.


c) Если () специфицирует PASCAL, то:


    • i) Тип параметра SQLCODE должен быть типом INTEGER языка Pascal.
      ii) Любой () в () должен быть CHARACTER, INTEGER, или REAL.
      iii) Если i-ое () специфицирует () CHARACTER(L) с некоторой () L, то тип i-ого параметра должен быть типом строки языка Pascal длины L.
      iv) Если i-ое () специфицирует () INTEGER или REAL, то тип i-ого параметра должен быть соответственно типом INTEGER, или REAL языка Pascal.


d) Если () специфицирует PL1, то:


    • i) Тип параметра SQLCODE должен быть FIXED BINARY(PP), где РР определяемая реализацией точность, большая или равная 15.
      ii) Любой () в () должен быть CHARACTER, DECIMAL, или FLOAT.
      iii) Если i-ое () специфицирует тип данных CHARACTER(L) с некоторой () L, то тип i-ого параметра должен быть типом CHARACTER языка PL/1 с длиной L.
      vi) Если i-ое () специфицирует тип данных DECIMAL(P,S) с некоторыми () P и () S, то тип i-ого параметра должен быть типом FIXED REAL DECIMAL(P,S) языка PL/1.
      v) Если i-ое () специфицирует тип данных FLOAT(P) с некоторой () P, то тип i-ого параметра должнен быть типом FLOAT REAL BINARY (P) языка PL/1.

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

  1. () определяет процедуру, которая может вызываться определяемым реализацией агентом.

  2. Когда процедура вызывается агентом языка программирования:
    а) Если для этого агента нет активной транзакции, то транзакция фактически инициируется и связывается с этим вызовом и с последующими вызовами этим агентом любой () в содержащем (), до тех пор, пока данный агент не закончит эту транзакцию.
    b) Выполняется () S данной ().


  3. а) Если S выполнен успешно, то


    • i) Если S - () , для которого следующая строка не существует, то в параметр SQLCODE устанавливается значение 100.
      ii) Если S - (), для которого не нашлось ни одной возможной строки, то в параметр SQLCODE устанавливается значение 100.
      iii) Если S - (), результатом которого явилась пустая таблица, то в параметр SQLCODE устанавливается значение 100.
      iv) Если S - () или ) () с поиском, для которых не нашлись объектные строки для модификации или удаления, то в параметр SQLCODE устанавливается значение 100.
      v) Во всех остальных случаях в параметр SQLCODE устанавливается 0.


b) Если S выполнен неуспешно, то


    • i) Все изменения, произведенные над базой данных при выполнении S, аннулируются.
      ii) В параметр SQLCODE устанавливается отрицательное число со значением, определяемым реализацией

Язык манипулирования данными (data manipulation language)

8.1 ()

Функция

Закрыть курсор.

Формат

::=

CLOSE

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

  1. Объемлющий модуль должен содержать объявление курсора, в котором используется это же имя курсора.

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

  1. Курсор должен быть в открытом состоянии.

  2. Курсор переводится в закрытое состояние и разрушается копия ().

8.2. ()

Функция

Заканчивает текущую транзакцию с фиксацией.

Формат

::=

COMMIT WORK

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

Нет.

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

  1. Текущая транзакция завершается.

  2. Закрываются любые курсоры, открытые данной транзакцией.

  3. Любые изменения базы данных, сделанные в текущей транзакции, фиксируются.

8.3. ()

Функция

Определяет курсор.

Формат

::=

DECLARE CURSOR

FOR

::=

[...]

::=

| UNION [ALL]

::=

| ()

::=

ORDER BY

[{,}...]

::=

{ | }

[ASC | DESC]

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

  1. () не должно быть идентичным любому другому (), специфицируемого в каком-либо другом () того же модуля.

  2. Любое (), содержащееся в (), должно быть определено в () () объемлющего (), который содержит (), специфицирующий это ().
    Замечание: Cм. Синтаксическое правило 7.1, " ()".

  3. Пусть Т обозначает таблицу, специфицированную в ().


  4. a) Если указано ORDER BY, то Т является только читаемой таблицей со специфицированным порядком сортировки.
    b) Если не указаны ни ORDER BY ни UNION и () является из меняемой (updatable), то Т - изменяемая таблица.
    c) Иначе Т - только читаемая таблица.


  5. a) Если не указано UNION, то описанием Т является описание ().
    b) Если указано UNION, то пусть для каждого специфицированного UNION Т1 и Т2 обозначают таблицы, которые специфицированы в () и (). () в спецификациях Т1 и Т2 должен состоять из "*" или (). Кроме имен столбцов, описания Т1 и Т2 должны быть идентичными. Все столбцы результата неименованы. За исключением (), описание результата такое же, как описание Т1 и Т2.

  6. Если указано ORDER BY, то каждая () в () должна идентифицировать столбец таблицы Т.
    a) Если () содержит (), то () идентифицирует столбец Т с именем, указанным в этой ().
    b) Если () содержит (), то это целое должно быть больше нуля и не более степени таблицы T. () указывает столбец Т с порядковой (ordinal) позицией, специфицируемой этим ().

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


  1. a) Если Т изменяемая (updatable) таблица, то курсор ассоциируется с именованной таблицей, идентифицируемой (

    ) из (). Пусть В обозначает эту именованную таблицу. Для каждой строки в Т существует соответствующая строка в В, из которой получена строка таблицы Т. Когда курсор установлен на строку таблицы Т, курсор также установлен на соответствующую строку таблицы В.
    b) В противном случае курсор не ассоциируется с именованной таблицей.


  2. a) Если не указано UNION, то Т - это результат указанной (.
    b) Если UNION указано, то пусть для каждого указанного UNION Т1 и Т2 обозначают результаты () и (). Результат UNION фактически порождается следующим образом: i) Инициализировать результат как пустую таблицу.


    • ii) Занести в результат каждую строку Т1 и каждую строку Т2
      iii) Если не указано ALL , то удалить все излишние дубликаты строк из результата.


  3. a) Если не указано ORDER BY, то:


    • i) Порядок строк в Т определяется реализацией.
      ii) Порядок строк может может быть разным в разных транзакциях.
      iii) Порядок строк Т, устанавливаемый при открытии курсора, будет таким же при следующем открытии курсора в этой же транзакции при условии, что:

      1. Отсутствуют сторонние изменения каких-либо таблиц, указанным в спецификации курсора.

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


b) Если ORDER BY указано, то Т обладает порядком сортировки:


    • i) Порядок сортировки является последовательностью групп сортировки. Группа сортировки - это последовательность строк, в которых все значения столбцов сортировки идентичны. Более того, группа сортировки может быть последовательностью групп сортировки.
      ii) Мощность последовательности и порядковая позиция каждой группы сортировки определяется значениями наиболее значащих столбцов сортировки. Мощность последовательности является минимальным числом групп сортировки таких, что для каждой группы сортировки с числом строк больше единицы все значения столбца сортировки идентичны.
      iii) Если порядок сортировки основывается на дополнительных столбцах сортировки, то каждая группа сортировки с числом строк больше единицы является последовательностью групп сортировки. Мощность каждой последовательности и порядковая позиция каждой группы сортировки внутри каждой последовательности определяется значениями следующего наиболее значащего столбца сортировки. Мощность каждой последовательности является минимальным числом групп сортировки таких, что для каждой группы с числом строк больше единицы все значения этого столбца сортировки идентичны.
      iv) Предыдущий параграф применяется по очереди к каждому дополнительному столбцу сортировки. Если группа сортировки состоит из нескольких строк и не является последовательностью групп сортировки, то порядок строк в группе сортировки не определен.
      v) Пусть С обозначает столбец сортировки и S - последовательность, которая определяется значениями С.
      vi) Направление сортировки связывается с каждым столбцом сортировки. Если направление для С задано по возрастанию, то первая группа сортировки S содержит наименьшее значение С и каждая последующая группа сортировки содержит значение С большее, чем значение С в предшествующей группе сортировки. Если направление для С задано по убыванию, то первая группа сортировки S содержит наибольшее значение С и каждая последующая группа сортировки содержит значения С меньшее, чем значение С в предшествующей группе сортировки.
      vii) Упорядоченность определяется правилами сравнения, указанными в 5.11, " (). Порядок неопределенных значений по отношению к не неопределенным значениям определяется реализацией, но должен быть либо строго больше либо строго меньше всех не неопределенных значений.
      viii) () специфицирует столбец сортировки и направление. Столбец сортировки - это столбец, указываемый () или (). () i ссылается на i-ый столбец Т. () указывает именованный столбец.
      ix) Если в () указано DESC, то направление сортировки, специфицируемое этой (), является направлением по убыванию. Если указано АSC или не указано ни ASC, ни DESC, то направление сортировки для этого столбца сортировки является направлением по возрастанию.
      x) Последовательность () определяет относительную значимость сортируемых столбцов. Столбец сортировки, указанный в первой (), наиболее значащий и каждый последующий столбец сортировки является менее значащим, чем предыдущий столбец сортировки.

8.4. ()

Функция

Характеристики

Тип файла
Документ
Размер
461,51 Kb
Тип материала
Учебное заведение
Неизвестно

Тип файла документ

Документы такого типа открываются такими программами, как Microsoft Office Word на компьютерах Windows, Apple Pages на компьютерах Mac, Open Office - бесплатная альтернатива на различных платформах, в том числе Linux. Наиболее простым и современным решением будут Google документы, так как открываются онлайн без скачивания прямо в браузере на любой платформе. Существуют российские качественные аналоги, например от Яндекса.

Будьте внимательны на мобильных устройствах, так как там используются упрощённый функционал даже в официальном приложении от Microsoft, поэтому для просмотра скачивайте PDF-версию. А если нужно редактировать файл, то используйте оригинальный файл.

Файлы такого типа обычно разбиты на страницы, а текст может быть форматированным (жирный, курсив, выбор шрифта, таблицы и т.п.), а также в него можно добавлять изображения. Формат идеально подходит для рефератов, докладов и РПЗ курсовых проектов, которые необходимо распечатать. Кстати перед печатью также сохраняйте файл в PDF, так как принтер может начудить со шрифтами.

Список файлов доклада

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6376
Авторов
на СтудИзбе
309
Средний доход
с одного платного файла
Обучение Подробнее