Информационный сайт

 

Реклама
bulletinsite.net -> Книги на сайте -> Программисту -> Коннолли Т. -> "Базы данных. Проектирование, реализация и сопровождение. Теория и практика" -> 73

Базы данных. Проектирование, реализация и сопровождение. Теория и практика - Коннолли Т.

Коннолли Т., Бегг К. Базы данных. Проектирование, реализация и сопровождение. Теория и практика — М.: Вильямc, 2003. — 1440 c.
ISBN 5-8459-0527-3
Скачать (прямая ссылка): bazidannihpproekt2003.djv
Предыдущая << 1 .. 67 68 69 70 71 72 < 73 > 74 75 76 77 78 79 .. 683 >> Следующая


Глава 4. Реляционная алгебра и реляционное исчисление

157 Этот запрос можно также представить следующим образом:

{sN, fN, IN, posn, sex, DOB, sal, bN | (Staif (sN, fN, IN, posn, sex, DOB, sal, bN) л

PropertyForRent (pN, st, 'Glasgow ., pc, .,p, rms, гяН, oN, sN, bNl) ) \

В этой версии перемеТшая домена cty в отношении PropertyForRent заменена константой 'Glasgow', а переменная того же домена sN, которая представляет табельный номер работника, повторно применяется и в отношении Staff, и в отношении PropertyForRent.

В. Спздоиті список всех сотрудников, которые в настоящее время не отвечают за работу с хаким-лиС, объектом.

{fN, IN I (3sN) {Staff (sN, fN, IN, posn, sex, DOB, sal, bN) л (~ (BsNl) (PropertyForRent (pN, st, cty, pc, typ, rms, rnt, oN, sNl, bNl) л (sN sNl))))}

Г. Создайте список всех клиентов, осматривавших объекты недвижимости в городе Гпазго. {fN, IN I (3cN, cNl, pN, pN , ссу)

(Client'-N, fN, IN, te? , рт, mR) л viewing (cNl, pNl, dt, cmt) л PropertyFjrRent (pN, st, cty, pc, typ, rms, rnt, oN, sN, bN) л [cN = cNl) л IpN =. pNl) л cty 'Glasgow')}

Д. Создайте список всех городов, в ко >рых есть отделение компании, но нет арендуемых объектов недвижимости.

{cty I (Branch(bN. st, cty, pc) л (~ Gctyl)

(PropertyForRent (pN, stl, ctyl, pel, typ, rms, rnt, oN, sN, bNl) л (cty = ctyl)))}

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

{cty I (Branch{bN, st, cty, pc л (dctyl!

(PropertyForRent(pN, stl, ctyl, pel, typ, rms, rnt, oN, sN, bNl) л (cty = ctyl) ) }

Ж. Создайте список всех городов, вкс торь. есть или отделение компании, или хотя бы один арендуемый объект недвижимости.

{cty I (Branch (bN, st, cty, pc) v

PropertyForRent (pN, stl, cty, pel, typ, rms, rnt, oN, sN, bN) ) }

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

158 Часть 11. Реляционная модель и языки 4.3. Другие языки

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

Трансформационные языки являются классом непроцедурных языков, которые используют отношения для преобразования исходных данных к требуемому виду. Эти языки предоставляют простые в работе структуры для формулирования требований к результатам имеющимися средствами. Примерами трансформационных языков являются SQUARE [37], SEQUEL [53] и его версии, а также язык SQL. Более подробно язык SQL рассматривается в главах 5, 6 и 21.

Графические языки предоставляют пользователю схему или другое графическое отображение структуры отношения. Пользователь создает некий образец желаемого результата, и система возврашает затребованные данные в указанном форма'хс' Примером подобного языка является язык QBE (Query By Example) [331]. Eio возможности будут продемонстрированы в главе 7.

Еще одной категорией языков являются языки четвертого поколения (Fourth- Generation Language — 4GL), которые позволяют создавать полностью готовое и соответствующее требованиям заказчика приложение с помощью ограниченного набора команд и в то же время предоставляют дружественную по отношению к пользователю среду разработки, чаще всего построенную на использовании команд меню (см. раздел 2.2 ). В некоторых системах используются даже определенные разновидности естественного языка, т.е. ограниченной версии обычного английского языка, которую иногда называют языком пятого поколения (Fifth-Generat ion Language — 5GL). Однако разработки проектов подобных языков по большей части все еще находятся на ранней стадии развития.

Резюме

¦ Реляционная алгебра — это процедурный язык высокого уровня, который может применяться в СУБД для построения нового отношения из одного или нескольких отношений, хранящихся в базе данных. Реляционное исчисление — непроцедурный язык, с помощью которого может быть сформулировано определение отношения, создаваемого на основе одного или нескольких отношений в базе данных. Но с формальной точки зрения реляционная алгебра и реляционное исчисление эквивалентны, т.е. для каждого выражения алгебры имеется эквивалентное выражение исчисления (и наоборот).

¦ Реляционное исчислелие применяется для оценки избирательной мощности реляционных языков. Язык, позволяющий создать любое отношение, которое может быть выведено формальным путем с помощью реляционного исчисления, называется реляционно полным. Реляционно полными являются большинство реляционных языков запросов, но они имеют большую выразительную мощность, чем реляционная алгебра и реляционное исчисление, поскольку в них предусмотрены дополнительные операции, выполняемые, в частности, с помощью агрегирующих и упорядочивающих функций.
Предыдущая << 1 .. 67 68 69 70 71 72 < 73 > 74 75 76 77 78 79 .. 683 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100