Студопедия

КАТЕГОРИИ:


Архитектура-(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)

Отношения, совместимые по типу




Замкнутость реляционной алгебры.

Обзор реляционной алгебры

 

В реализациях конкретных реляционных СУБД сейчас не используется в чистом виде ни реляционная алгебра, ни реляционное исчисление. Фактическим стандартом доступа к реляционным данным стал язык SQL (Structured Query Language) и его стандарты, например SQL-92. Язык SQL представляет собой набор операторов реляционной алгебры, выражаемых в виде определенного синтаксиса. Язык доступа к данным называется реляционно-полным, если он как минимум позволяет выразить запросы, представляемые реляционной алгеброй. Далее рассмотрим основы реляционной алгебры.

 

Реляционная алгебра представляет собой набор операторов, использующих отношения в качестве аргументов, и возвращающие отношения в качестве результата. Таким образом, реляционный оператор R выглядит как функция f с отношениями в качестве аргументов: R = f (R1, R2,…Rn).

Реляционная алгебра является замкнутой, т.к. в качестве аргументов в реляционные операторы можно подставлять другие реляционные операторы, подходящие по типу: R = f (f1 (R11, R12,…R1n), f2 (R21, R22,…R2n),…).

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

Обычно выделяют девять реляционных операторов, которые объединяются в две группы:

1) теоретико-множественные операторы: пересечение; объединение; вычитание и декартово произведение;

2) специальные реляционные операторы: проекция; выборка; соединение и деление.

Последняя операция – присвоение, которая является стандартной операцией языка программирования, дающая имя величине.

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

 

 

Некоторые реляционные операторы (например, объединение) требуют, чтобы отношения имели одинаковые заголовки. Действительно, отношения состоят из заголовка и тела. Операция объединения двух отношений есть просто объединение двух множеств кортежей, взятых из тел соответствующих отношений. Но будет ли результат отношением? Во-первых, если исходные отношения имеют разное количество атрибутов, то, очевидно, что множество, являющееся объединением таких разнотипных кортежей нельзя представить в виде отношения. Во-вторых, пусть даже отношения имеют одинаковое количество атрибутов, но атрибуты имеют различные наименования. Как тогда определить заголовок отношения, полученного в результате объединения множеств кортежей? В-третьих, пусть отношения имеют одинаковое количество атрибутов, атрибуты имеют одинаковые наименования, но определенны на различных доменах. Тогда снова объединение кортежей не будет образовывать отношение.

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

Атрибуты с одинаковыми именами определены на одних и тех же доменах.

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

Синтаксис: R RENAME Atr1, Atr2, … AS NewAtr1, NewAtr2, …,

где R – отношение;

Atr1, Atr2, …- исходные имена атрибутов;

NewAtr1, NewAtr2, … - новые имена атрибутов.

В результате применения оператора переименования атрибутов получаем новое отношение, с измененными именами атрибутов.

Пример 1:

Следующий оператор возвращает неименованное отношение, в котором атрибут ИД_Каф переименован в ИД_Каф2002:

Кафедра RENAME ИД_Каф AS ИД_Каф2002

 




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


Дата добавления: 2014-11-20; Просмотров: 889; Нарушение авторских прав?; Мы поможем в написании вашей работы!


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



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




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