КАТЕГОРИИ: Архитектура-(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) |
Квантор существования
Целевой список и определяющее выражение
Целевой список – это список в выражении реляционного исчисления, определяющий атрибуты таблицы решения. Определяющее выражение – это условие в выражении реляционного исчисления, ограничивающее вхождение элементов в таблицу решения. Решением каждого запроса в реляционном исчислении является реляционная таблица, которая задается целевым списком и определяющим выражением. Целевой список определяет атрибуты таблицы решения. На основе определяющего выражения отбираются значения из базы данных, которые войдут в таблицу решения. Объясним, как они работают. В рассмотренном примере целевым списком был r.SalpersName. Другими словами, таблица решения имеет только один атрибут – имя торгового агента. Значения, входящие в таблицу решения, взяты из тех строк, которые удовлетворяют определяющему выражению:
r IN SalesPerson AND r.Office = ‘Ярославль’
В рассмотренном примере целевой список состоит из одного атрибута. Однако, в общем случае, целевой список может состоять из нескольких атрибутов. Атрибуты списка отделяются друг от друга запятыми. Например, {r.SalpersId, r.SalpersName, r.ManagerId: r IN SalesPerson AND r.Office = ‘Ярославль’}
Более того, можно выбрать любое подмножество из этих атрибутов. Из данного объяснения можно понять, как операции выбора и проектирования реляционной алгебры поддерживаются в реляционном исчислении. Объединение, пересечение, разность и произведение также легко можно вывести из конструкций реляционного исчисления, которые мы обсудили к настоящему моменту. В исчислении не используются пошаговые процедуры алгебры. Поэтому операция присвоения здесь не нужна. Остались только две операции реляционной алгебры (соединения и деления), для которых требуются кванторы: квантор существования для соединения и квантор всеобщности для деления.
Квантор существования – это выражение реляционного исчисления, означающее существование хотя бы одной строки, удовлетворяющей условию. Квантор обозначает количество чего-либо. Квантор существования означает, что существует хотя бы один экземпляр определенного типа вещей. В реляционном исчислении квантор существования используется для задания условия того, что определенный тип строк в таблице существует. Рассмотрим пример запроса:
Перечислить названия фирм-клиентов, покупавших товар 3333.
Эта таблица состоит из одного столбца и целевым списком является
r.CustName,
где r - строка из таблицы Customer. Данные о продажах хранятся в таблице Sale, где код товара ProdId = 3333. Таким образом, условие таково: существует хотя бы одна строка таблицы Sale, содержащая Id (идентификатор клиента) и код товара 3333. Это формулируется следующим образом: Существует s IN Sale (s.CustId = r.CustId and s.ProdId = 3333)
Такое выражение читается: «Существует строка s в таблице Sale такая, что s.CustId = r.CustId и s.ProdId = 3333». Полное решение в реляционном исчислении выглядит так:
(r.CustName: r IN Customer AND exists s IN Sale (s.CustId = r.CustId and s.ProdId = 3333))
Оно описывает таблицу, состоящую из одного столбца и содержащую названия клиентов, взятых из строк таблицы Customer. Данное название помещается в таблицу решения, если его строка r удовлетворяет условию после двоеточия. В реляционной алгебре для выполнения этого запроса требуется соединение. Рассмотрим более сложный запрос, требующий двух соединений. Запрос: Кто покупал настольные лампы? Рассмотрим три таблицы. Customer (Клиент) Sale (Продажи) Product (Товары)
Этот запрос используется для иллюстрации соединения при описании реляционной алгебры. Решение в реляционном исчислении выглядит так:
(r.CustName: r IN Customer AND there exists s IN Sale AND exists t IN Product) (s.CustId = r.CustId AND s.ProdId = t.ProdId AND t.ProdName = ‘Настольная лампа’)
Дата добавления: 2014-11-20; Просмотров: 885; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |