Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Синтаксис. Реляционная замкнутость




Реляционная замкнутость

Уже упоминалось, что результат выполнения любой операции над отношением также является отношением. Эта особенность является свойством реляционной замкнутости. Благодаря этому свойству можно записывать вложенные реляционные выражения, т.е. выражения, в которых операнды сами представлены реляционными выражениями, причем произвольной сложности.

В данном случае возникает вопрос о формировании заголовка для производных отношений. Обязательное наличие заголовка диктуется реляционной замкнутостью, и системе должно быть известно, что он из себя представляет. Иначе говоря, результат обязательно должен иметь определенный тип отношения. Поэтому каждая реляционная операция должна быть определена таким образом, чтобы выдавать результат с надлежащим типом отношения (соответствующим набором имен атрибутов или заголовком). Это необходимо для реализации возможности ссылаться на эти имена атрибутов в последующих операциях, расположенных на других уровнях вложенного выражения.

Необходим встроенный в реляционную алгебру набор правил вывода типов (отношений), чтобы выводить тип (отношения) на выходе произвольной реляционной операции, зная типы (отношения) на ее входе.

Полезным в этом направлении является введение оператора переименования RENAME, который позволяет вернуть новое отношение, только указанные атрибуты которого имеют новые имена, а его значение остается прежним.

P RENAME PNAME AS PN, WEIGTH AS WT

Данный оператор позволяет устраниться от необходимости использования механизма уточнения имен атрибутов (P.WEIGHT, как в SQL).

 

Для записей выражений реляционной алгебры необходимо ввести некоторый синтаксис. Предлагается использовать следующий синтаксис:

<реляционное выражение>::= RELATION { <список выражений кортежей> }

| <имя переменной-отношения>

| <реляционная операция>

| (<реляционное выражение>)

Здесь <реляционное выражение> - выражение, обозначающее отношение (его значение).

<реляционная операция>::= <проекция> | <не проекция>

<проекция>::= <реляционное выражение>

{ [ ALL BUT } <список имен атрибутов> }

Здесь <реляционное выражение> не должно иметь вид <не проекция>.

<не проекция>::= <переименование> | <объединение> | <пересечение> | <вычитание> | <произведение> | <выборка> | <соединение> | <деление>

<переименование>::= <реляционное выражение> RENAME <список переименовываемых элементов>

Здесь <реляционное выражение> не должно иметь вид <не проекция>.

<объединение>::= <реляционное выражение> UNION

<реляционное выражение>

Здесь <реляционное выражение> не должно иметь вид <не проекция>, если только оба не объединения.

<пересечение>::= <реляционное выражение> INTERSECT

<реляционное выражение>

Здесь <реляционное выражение> не должно иметь вид <не проекция>, если только оба не пересечения.

<вычитание>::= <реляционное выражение> MINUS

<реляционное выражение>

Здесь <реляционное выражение> не должно иметь вид <не проекция>.

<произведение>::= <реляционное выражение> TIMES

<реляционное выражение>

Здесь <реляционное выражение> не должно иметь вид <не проекция>, если только оба не являются произведениями.

<выборка>::= <реляционное выражение> WHERE

<логическое выражение>

Здесь <реляционное выражение> не должно иметь вид <не проекция>. Логическое выражение может иметь ссылки на атрибуты отношения, обозначенного как реляционное выражение.

<соединение>::= <реляционное выражение> JOIN

<реляционное выражение>

Здесь <реляционное выражение> не должно иметь вид <не проекция>, если только хотя бы одно не является соединением.

<деление>::= <реляционное выражение> DIVIDEBY

<реляционное выражение> PER

<реляционное выражение>

Здесь <реляционное выражение> не должно иметь вид <не проекция>.

 




Поделиться с друзьями:


Дата добавления: 2015-05-09; Просмотров: 577; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.012 сек.