С.Д. Кузнецов - Основы баз данных (1121716), страница 58
Текст из файла (страница 58)
Обсуждение функпии БОВБТВ1НС ... Б1М1ЕАР ... ЕБОАРЕ Отложим ДО слал)чошей лекции. Как видно из описания синтаксиса функций, возвращающих 26а Лекция 13 Характеристика еле атора ЗЕСЕСТ и ссылки иа таблицы раздела ЕНОМ строчные значения, для символьных строк имеются еше четыре функции: сомчеет, телмеВАте, тетм и очееьлу. По смыслу все они очень просты. Функция сончеет меняет кодировку символов в заданной строке, причем набор символов не меняется. Способ задания правил перекодировки определяется в реализации.
Функция телмеВАте, наоборот, в соответствии с правилами трансляции «переводит» текстовую строку на другой язык [используя набор символов целевого алфавита). Кодировка не меняется. Функция тети «отсекает» последовательности указанного символа в начале, в конце или в конце и начале заданной строки. Наконец, функция Очееьлу заменяет указанную подстроку первого операнда строкой, заданной в качестве второго операнда. Выражения даты-времени К выражениям даты-времени мы относим выражения, вырабатываюшие значения типа дата-время и интервал. Выражения даты-времени определяются следующими синтаксическими правилами: т)атегтве ча1це ехргеввтоп т)атеттпе гетп Тпгегча1 ча1це ехртевятоп + т)агег1пе гегп т)агегтве ча1ие ехргевятоп + 1птегча1 гегп т)атет1ве ча1ие ехртеввтоп — Ептегча1 Гетв т)атег1ве тегв ::= дагег1пе ртупагу [ АТ ( ).ОСА1.
[ Т1МЕ ЕВОЕ 1птегча1 ча1це ехргеввтоп ) ) с)атет1ве ргтпагу::= ча1пе ехргеввтоп ргтпагу ] с)атег1пе ча1це Тцпсгтоп Как видно из описания синтаксиса, сами выражения строятся очень просто — на основе обычных арифметических операций. Снова более интересны первичные составляющие — вызовы функций, возврашаюших значение дата-время. Эти вызовы определяются следующим синтаксисом: т)атет1ве ча1це 1цпсттоп ::= СВЕЕЕИТ ВАТЕ СОЕЕЕМТ Т1МЕ [ (ргестятоп) ВОСАЬТТМЕ [ (ртестятоп) ) СОВЛЕЧЕТ Т1МЕЯТАМР [ (ргествтод) ] ВОСАВТТМЕЕТАМР [ (ргестяуоп) Видимо, приведенные синтаксические правила не нуждаются в комментариях: можно получить текущую дату, а также текушее время с желаемой точностью. Отличие функций еосАВттме и ЬОСАВТТМеЕТАМР от 269 Основы баз данных Курс С(]ЕЙЕМТ Т1МЕ и СОВЕЕМТ Т1МЕЯТАМР, соответствеиио, состоит в том, что первая пара функций ие возвращает смещение локального времени от Гринвича.
Синтаксис выражений со значениями типа интервал определяется следующими правилами: 1псегча1 ча1ие ехргеяя(оп ]пгегча1 гегв Тпгегча1 ча1ие ехргеяя(оп + 1пгегча1 гегв Тпгегча1 ча1ие ехргеяя1оп — 1пгегча1 гегв (с]агег1ве ча1ие ехргеяя(оп — с]агегуве сегв] Тпсегча1 с]па1111ег упсегча1 Гегв ::= 1псегча1 Тассог Тпсегча1 гегв * ппвег1с 1асгог Тпгегча1 гегв ! ппвег1с 1асгог писпег(с гегв * Тпгегча1 Тасгог 1пгегча1 Тассог ::= ( ( а ] — ] ] Тпсегча1 рг(вагу ( <1пгегча1 с(па1Жег> ] Тпсегча1 ргзвагу ::= ча1ие ехргеяя(оп ргувагу 1пгегча1 ча1ие ЬапсГ1оп Как видно из приведенных правил, выражения со значениями типа интервал устроены очень просто; почти вся содержательная информация была приведена при обсуждении соответствующего типа данных. Стоит только заметить, что квалификатор интервала указывается для того, чтобы явно специфицировать единицу измерения интервала.
Поддерживается только одна функция АВЯ (абсолютное значение), аргументом которой является выражение со значением типа интервал. Булевские выражения К булевским выражениям относятся выражения, вырабатывающие значения булевского типа (напомним, что булевский тип языка Я)]. содержит три логических значения — (гие,Гайе и ип/сноып). Булевские выражения определяются следующими синтаксическими правилами: Ьоо1еап ча1ие ехргеяя(оп ::= Ьоо1еап Гегв Ьоо1еап ча1ие ехргеяя(оп ОЕ Ьоо1еап гегв Ьоо1еап Гегв ::= Ьоо1еап 1ассог Ьоо1еап Гегв АМР Ьоо1еап йассог Ьоо1еап Еассог ::= [ МОТ ] Ьоо1еап Геяс 270 Лекция! 3 Характе истика опе тора ЯЕЬЕСТ и ссылки иа таблицы раздела РВОМ Ьоо1еап Гевс ::= Ьоо1еап рг1пагу [ 1Я ( НОТ ] СгцГЬ ча1це СгцсЬ ча1це ::= ТЮЗЕ ~ РАЬЯЕ ! ОИКИОХИ Ьос1еап ргЫагу ::= ргебТсасе (Ьоо1еап ча1це ехргевв1оп) ча1це ехргеявгоп рггаагу Выражения вычисляются слева направо с учетом приоритетов операций (наиболее высокий приоритет имеет унарная операция ЕОт, следующим уровнем приоритета обладает «мультипликативная» операция конъюнкции Анр, и самый низкий приоритет у «алдитивной» операции дизъюнкции Ой) и круглых скобок.
Операции 1Я и 1Я НОТ определяются следующими таблицами истинности: Выражения о переключателем Выражения с переключателем в некотором смысле ортогональны рассмотренным выше видам выражений, поскольку разные выражения с переключателем могут вырабатывать значения разных типов в зависимости от типа данных элементов. Поскольку мы еще вообще не рассматривали этот вид выражений, обсудим их более подробно.
Как обычно, начнем с синтаксиса: саве ехргевв1оп ::= саве аЬЬгечуасуоп саяе врес111сагуоп саве аЬЬгеч1ас1оп::= %Л.Ь1Р ~ча1пе ехргеввуоп,ча1це ехргевя1оп~ СОАЬЕЯСЕ ~ча1це ехргевяуоп сопкла 11яг) саяе вресЯТТсаСТоп ::= в1ир1е саве ! веагсЬет1 саве 271 Основы бав данных в(гпр1е саве::= САЯЕ уа1ие ехргеяя(оп яплр1е г Неп с!авве 11вт [ ЕЬЯЕ тга1ие ехргеяя(сп ) ЕИО веагс[гес[ саяе ::= САЯЕ яеагсЬед и[ген с1аиве 11яг ЕЬЯЕ ча1ие ехргевв(оп [ ЕИО в(щр1е н[геп с1аияе ::= ИНЕИ уа1ие ехртеяя(оп ТНЕИ ча1ие ехргеяя(оп яеатс[гег[ н[геп с1аиве :;= ХНЕИ сопс[111спа1 ехргевя(оп ТНЕИ уа1ие ехргеяв(оп Наиболее общим видом выражения с переключателем является выражение с гюисковым переключателем (яеагс[тед саяе).
Правила вычисления выражений этого вида состоят в следующем. Вычисляется логическое выражение, указанное в первом разделе ИНЕИ списка (веагс[гес[ н[геп с1аияе 11яг). Если значение этого логического выражения равняется ггие, то значением всего выражения с поисковым переключателем является значение выражения, указанного в первом разделе Инеи после ключевого слова Тнеи. Иначе аналогичные действия производятся для второго раздела инеи и т. д.
Если ни для одного раздела инеи при вычислении логического выражения не было получено значение ггие, то значением всего выражения с поисковым переключателем является значение выражения, указанного в разделе ЕЬЯЕ. Типы всех выражений, значения которых могут являться результатом выражения с поисковым переключателем, должны быть совместимыми, и типом результата является «наименьший общий» тип набора типов выражений-кандидатов на выработку результата.* Если в выражении отсутствует раздел еьяе, предполагается наличие раздела ЕЬЯЕ ИОЬЬ.
В выражении с простым переключателем (в(шр1е саве) тип данных операнда переключателя (выражения, непосредственно следующего за ключевым словом САЯЕ, назовем его СΠ— Саве Орегапс[) должен бытьсовместим с типом данных операнда каждого варианта (выражения, непосредственно следующего за ключевым словом Инеи; назовем ХΠ— х[геп орегапс[). Выражение с простым переключателем САЯЕ СО ХНЕИ Х01 ТНЕИ геви1С1 ИНЕИ Х02 ТНЕИ геви1Г2 ' Для набора типов тп т2, ..., тп будем называть тип т наименьшим общим по приводимости, если значения каждого из типов тд т2, ..., тс неявно приводимы к типу т, и не существует типа т' такопг, что значения типов тд тд ..., тп неявно приводимы к типу т', и значения типа т' неявно приводнмы к типу т.
Лекция 13 Характеристика оператора ЯЕьЕСТ и ссыпки на таблицы раздела РВОМ ХНЕН ХОп ТНЕУ гезц1Гп ЕЬЯЕ гезц1Г ЕИЭ эквивалентно выражению с поисковым переключателем САЯЕ ХМЕЛ СО = ХО1 ТНЕН гезц1Г1 ХНЕН СО = ХО2 ТНЕН геяц1Г2 ХНЕН СО = ХОп ТНЕН геац1Гп ЕЬЯЕ гезц1Г Выражение хньыР (ту1, ту2) эквивалентно следующему выражению с переключателем: САЯЕ ХНЕН тУ1 = тУ2 ТНЕМ %)ЬЬ ЕЬЯЕ зУ1 ЕМО. Выражение СОАееясе (Р1, ч2 ) эквивалентно следующему выражению с переключателем: САЯЕ ХНЕИ Ч1 1Я НОТ Н()Ьо ТНЕН тУ1 ЕЬЯЕ тУ2 ЕИП.
Выражение сОАЬЕЯСЕ (ту1, ту2, ... туп) для п а 3 эквивалентно следующему выражению с переключателем: САЯЕ ХНЕН Ч1 1Я ВОТ НОЕЬ ТНЕУ зУ1 Е)ЯЕ СОА1ЕЯСЕ (Ч2,... и) ЕИЮ. Общая структура оператора выборки в языке 891 Для выборки данных в прямом Я~(. используется оператор ЯЕ1.ЕСТ, возвращающий набор* из одной или нескольких строк одинаковой структуры и задаваемый в следующем синтаксисе: ЯЕЬЕСТ [ Ы.Ь ) ОТЯТТНСТ ] ве1есГ 1Геш сошша11зГ РВОМ ГаЫе геРегепсе сопви11вб [ ХНЕВЕ сопдТГТопа1 ехргевзуоп [ ОВОНР ВУ со1цшп паше сопнаа11зГ [ НА))1НО сопЖГТопа1 ехргеззуоп ] [ ОВОЕВ ВУ огс[ег 1Геш соцапа11вГ ] ' Мы сознательно используем здесь термин набор, поскольку в обшем случае результатом выполнения оператора выборки не является таблица.
273 Основы баз данных курс Семантика оператора выборки Для начала опишем общую схему выполнения оператора зеьест в соответствии с предписаниями стандарта.* Выполнение запроса состоит из нескольких шагов, соответствующих разделам оператора выборки. На первом шаге выполняется раздел рвом. Если список ссылок на таблицы (еаые ге1егецсе солпа11вг) этого раздела соответствует таблицам л, в, ... с'е, то в результате выполнения раздела ЕЕОм образуется таблица (назовем ее т), являюшаяся расширенным декартовым произведением таблиц Л, Д, ..., О.