Главная » Просмотр файлов » Введение в системы БД

Введение в системы БД (542480), страница 193

Файл №542480 Введение в системы БД (Введение в системы БД) 193 страницаВведение в системы БД (542480) страница 1932015-08-16СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 193)

В данном случае ее результат будет включать некоторые значения атрибута А, в общем случае — конкретного типа ЕЬЫРЯЕ, и поэтому объявленный тип атрибута А в результирующем отношении этой 745 Глава 19. Наследование типов операции должен быть ЕЬЫРЯЕ.

Таким образом, и для операции объединения в результирующем отношении объявленный тип атрибута й также должен быть ЕЬЫРЯЕ (но об этом частном случае, в отличие от операций 001И, 1ИТЕКЯЕСТ и И1М08, вряд ли можно сказать, что он интуитивно непредсказуем). Теперь сформулируем общее правило. ° Пусть гх и гу — отношения с общим атрибутом А, и пусть объявленные типы атрибута й в отношениях гх и гу — соответственно 0Т(йх) и 0Т(Ау).

Рассмотрим соединение отношений гх и гу (обязательно по атрибуту й или по крайней мере с его участием). Объявленный тип 0Т(йх) должен быть подтипом типа 0Т(йу) или наоборот, в противном случае выполнение соединения будет недопустимо (проверяется во время компиляции). Если соединение допустимо, можно считать, не теряя общности, что 0Т(йу) — это подтип 0Т(Ах). Тогда объявленный тип атрибута й в результирующем отношении операции будет 0Т(Ах). ° Аналогичные соображения справедливы и для операций объединения, пересечения и разности. В каждом случае соответствующие атрибуты операндов должны быть такими, чтобы объявленный тип одного из них был подтипом объявленного типа другого и объявленный тип соответствующего атрибута результата будет менее конкретным из двух объявленных типов (здесь под менее конкретным нз двух типов Т и Т', один из которых является подтипом другого, подразумевается тот, который является супертипом).

Операторы проверки типа В предыдущем разделе был приведен фрагмент кода, в котором применялись операторы вида 1Б 800АКЕ, 18 С1КСЬЕ и т.д., используемые лля проверки, относится лн указанное значение к определенному типу. Рассмотрим эти операторы подробнее. Прежде всего, будем считать, что определение некоторого типа Т приводит к автоматическому определению оператора следующего вида. 18 Т ( Х ) Здесь Х вЂ” скалярное выражение, такое, что 0Т(Х] является супертипом типа Т (проверяется при компиляции). Вычисление выражения в целом дает значение истина, если выражение Х принадлежит типу Т, и значение ложь — в противном случае.

Отметим, что объявленный тип указанного аргумента Х должен быть супертипом указанного типа Т. Поэтому, например, если С вЂ” переменная объявленного типа С1КСЬЕ, то приведенное ниже выражение будет недопустимым (ошибка типа будет обнаружена при компиляции). 18 800АКЕ ( С ] С другой стороны, оба следующих выражения допустимы и в результате дают значение истина. 18 С1КСЬЕ ( С ) 18 ЕЬЫРБЕ ( С ) 74б Часть )'. Дополнительные аспекты Наконец, если Š— переменная объявленного типа ЕЬЫРЯЕ, но конкретный тип ее текущего значения — некоторый подтип типа С1КСЬЕ, то результат приведенного ниже выражения также будет истиной~. 1Я С1КСЬЕ ( Е ) Мы также подразумеваем, что определение некоторого типа Т приводит к автоматическому определению оператора следующего вида.

1Я МЯ Т ( Х ) Здесь Х вЂ” скалярное выражение, а ЕТ(Х) — супертип типа Т (опять же, это проверяется при компиляции). Вычисление выражения в целом дает значение истина, если выражение Х принадлежит типу Т, и значение ложь — в противном случае.

Замечание. Обратите внимание, что в то время как, например, оператор 1Б ЕЬЫРЯЕ на естественном языке можно лучше всего сформулировать как "является эллипсом", то оператор 1Б ИЯ ЕЬЫРЯЕ на естественном языке лучше всего сформулировать как "является конкретно эллипсом". Ниже приводится пример, включающий типы прямоугольника, квадрата и оператор 1Я МЯ КЕСТАНОЬЕ. 'чйн К КЕСТйНОЬЕ ; 1Р 1Б МЯ КЕСТАНОЬЕ ( К ) ТНЕН САЬЬ КОТАТЕ ( К ) ) Интуитивно ясно, что оператор КОТАТЕ (Вращать) — это оператор, с помощью которого заданный в качестве аргумента прямоугольник поворачивается на 90' вокруг центра, и что в подобном вращении нет никакого смысла, если рассматриваемый прямоугольник является квадратом.

Проверка типа также важна для реляционных операторов. Рассмотрим следующий пример. Пусть переменная-отношение К имеет атрибут А объявленного типа ЕЬЫРЯЕ, и допустим, что требуется получить такие кортежи переменной-отношения К, в которых значение атрибута А в действительности является окружностью с радиусом, большим 2. Можно попытаться решить эту задачу следующим образом. К ННЕКЕ ТНЕ К ( А ) > ЬЕНОТН ( 2.0 ) Однако это выражение будет квалифицировано как ошибочное при компиляции, поскольку лля оператора ТНЕ К требуется, чтобы аргумент имел тип С1КСЬЕ, а атрибут й имеет объявленный тип ЕЬЫРБЕ, а не С1КСЬЕ. (Если бы проверка при компиляции не выполнялась, то ошибка была бы, конечно, обнаружена во время выполнения, причем зто произошло бы прн обработке первого же из кортежей, который является просто эллипсом, а не окружностью.) В ГЗ.ЗЗ определяются обобщенные формы всех операторов "проверки типов", которые представлены в этом подразделе.

Например, обобщенная форма оператора 1Б Т проверяет, относится ли один операнд к тому же типу, что и другой. Она мажет использоваться вместо оператора, просто проверяющего, принадлежит ли переменная некоторииу явно указанному типу.

Глава 19. Наследование типов Очевидно, что необходимо как-то отсеять кортежи, в которых значение атрибута А является просто эллипсом, и только после этого проверить условие, что радиус должен быть больше 2. Рассмотрим теперь другую формулировку возможного решения. В : 1Я С1ВСЬЕ ( А ) ИНЕВЕ ТНЕ В ( А ) > ЬЕМОТН ( 2.0 ) Согласно этому выражению при выполнении операции должны возвращаться такие кортежи, в которых значение атрибута А является окружностью с радиусом, большим 2.

Точнее, возвращается отношение, имеющее следующие свойства. 1. Оно имеет тот же заголовок, что и переменная-отношение В, но объявленный тип атрибута А в нем — С1ВСЬЕ, а не ЕЬЫРБЕ. 2. Его тело содержит те кортежи из переменной-отношения В, в которых значение атрибута А будет иметь тип С1ВСЬЕ, т.е, будет окружностью и радиус этой окружности будет больше 2. Другими словами, то, что мы только что рассмотрели,— это новый реляционный оператор следующего вида. В:1БТ(А) Здесь  — реляционное выражение, а А — атрибут отношения (скажем, г), обозначаемого этим выражением. Объявленный тип ОТ(А) атрибута А должен быть супертипом типа Т (проверяется при компиляции). Значение данного выражения в целом определяет отношение со следующими свойствами.

1. Оно имеет тот же заголовок, что и отношение г, но объявленный тип атрибута А в этом заголовке — Т. 2. Его тело содержит кортежи г, в которых атрибут А имеет значение типа Т, и, кроме того, объявленный тип атрибута А в каждом из таких кортежей будет Т. Аналогично определяется другой новый реляционный оператор следующего вида. Вг1БМЯТ(А) 19.7. Операторы, версии и сигнатуры Как утверждалось в разделе 19.3, любой заданный оператор может иметь много различных скрытых версий реаяизииии (что известно также как явная специализация).

Это означает, что по мере продвижения в иерархии типов от некоторого супертипа Т к некоторому подтипу Т' необходимо, чтобы по крайней мере существовала возножиосеь переписать реализацию (по разным соображениям) операторов типа Т для типа Т'. В качестве примера рассмотрим следующий оператор МОЧЕ. ОРЕВАТОВ МОЧЕ ( Е ЕЬЫРБЕ, В ВЕСТАМОЬЕ ) ВЕТОВМБ ( ЕЬЬ1РЯЕ ) ЧЕВЯ1ОМ ЕВ МОЧЕ ВЕТОВМ ( ЕЬЫРЯЕ ( ТНЕ А ( Е ), ТНЕ Е ( Е ), В СТВ ( В ) ) ЕМЮ ОРЕВАТОВ ; 748 Часть г'. Дополнительные аспекты Оператор МОЧЕ выполняет "перемещение" эллипса Е таким образом, что его центр помещается в центр прямоугольника К.

Точнее говоря, он возвращает эллипс, который в точности соответствует эллипсу, указанному его параметром Е, но центр возвращаемого эллипса совпадает с центром прямоугольника, заданного параметром К. Обратите внимание, что фраза УЕКЯ1ОМ во второй строке определения вводит еше одно имя, ЕК МОЧЕ, используемое именно для конкретной версии оператора МОЧЕ (подробности приводятся в следующем разделе). Кроме того, обратите внимание, что неявно предполагается существование оператора К СТК, который возвращает координаты центра заданного прямоугольника. А теперь предположим, что существует механизм явной специализации, т.е. требуется определить другую версию оператора МОЧЕ, выполняющего перемещение окружностей, а не эллипсов'с. ОРЕККТОК МОЧЕ ( С С1КСЬЕ, К КЕСТВМБЬЕ ) КЕТОКМБ ( С1КСЬЕ ] ЧЕКЯХОМ СК МОЧЕ КЕТОКМ ( СХКСЬЕ ( ТВЕ К ( С ), К СТК ( К ) ] ЕМО ОРЕКАТОК > Аналогично можно было бы получить явную специализацию для оператора МОЧЕ (скажем, ЕЯ МОЧЕ), если бы аргументы имели соответственно конкретные типы ЕЬЬТРБЕ и Б()ОВКЕ, а аргументы конкретных типов С1КСЬЕ и Я(]БЕКЕ, например, — СЯ МОЧЕ.

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

Тип файла
DJVU-файл
Размер
10,05 Mb
Тип материала
Предмет
Высшее учебное заведение

Список файлов книги

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