17220

Использование операций реляционного исчисления для формирования запросов на выборку данных средствами SQL

Лабораторная работа

Информатика, кибернетика и программирование

Лабораторная работа № 4 Тема: Использование операций реляционного исчисления для формирования запросов на выборку данных средствами SQL. Цель работы: Изучить формулы реляционного исчисления и возможность их примирения к формированию запросов на выборку данных. Ис...

Русский

2013-06-30

76.5 KB

3 чел.

Лабораторная работа № 4

Тема: Использование операций реляционного исчисления для формирования запросов на выборку данных средствами SQL.

Цель работы: Изучить формулы реляционного исчисления и возможность их примирения к формированию запросов на выборку данных. Используя синтаксические конструкции квантора существования, а также вложенных запросов реализовать предложенные естественно-языковые формулировки запросов и формальную запись суждений средствами SQL.

Структура лабораторной работы

  1.  Общие сведения об операторах реляционной алгебры.
    1.  Использование предикатов для формирования запросов.
  2.  Задание к лабораторной работе.
    1.  Реализация запросов на естественном языке.
    2.  Реализация запросов по выражениям реляционного исчисления.
  3.  Оформление отчета.
  4.  Контрольные вопросы.

1. Общие сведенья о выражениях реляционного исчисления

1.1. Использование предикатов для формирования запросов

Реляционное исчисление кортежей строит правильные отношения путем описания условий, которым должны удовлетворять составляющие их кортежи. Условия описываются с помощью формул, которые имеют вид:

{tP(t)}

Здесь t – переменная, обозначающая некоторый кортеж, а P(t) – предикат от этой переменной. Формула исчисления кортежей описывает множество всех таких кортежей t, для которых предикат P(t) принимает значение истина.

Элементарными образующими элементами предиката P(t) являются атомы, которые могут быть следующих видов:

  1.  R(t), где r – переменная-кортеж, R – отношение. Данный атом имеет значение истина, если кортеж r принадлежит отношению R. При этом если отношение R имеет схему H(R), то и кортеж r имеет такую же схему. Например, СОТРУДНИК(t), означает, что r является кортежем отношения СОТРУДНИК, и имеет схему {ИМЯ, ФАМИЛИЯ, ОТЧЕСТВО, ВОЗРАСТ} (если отношение СОТРУДНИК имеет данную схему).
  2.  S[A]  r[B], где r и s – некоторые кортежи, A и B – имена атрибутов, причем A  H(s) и B  H(r), и  – арифметический оператор сравнения (=,<,>,,,). Этот атом принимает значение истина, тогда и только тогда, когда атрибут A кортежа s находится в отношении с атрибутом B кортежа r. Например, если r,СОТРУДНИК(s), то r[ВОЗРАСТ] < s[ВОЗРАСТ] имеет значение “истина”, если возраст сотрудника r меньше возраста сотрудника s.
  3.  S[A]  v, где s – некоторый кортеж, A – имя атрибута (A  H(s)), а v – константа из домена атрибута A. Этот атом принимает значение “истина”, если значение атрибута A кортежа s находится в отношении с константой v. Например, r[ВОЗРАСТ] < 40, принимает значение “истина”, если возраст сотрудника r меньше 40.

Предикат p(t) строится из атомов с использованием логических связок, кванторов и скобок. Синтаксически правильные предикаты имеют следующее рекурсивное определение:

  1.  Каждый атом – это правильный предикат.
  2.  Если P1 и P2 – правильные предикаты, то P1  P2, P1  P2, и P1 – также правильные предикаты, утверждающие соответственно, что “ P1 и P2 оба являются истинными”, “ P1 или P2, либо оба являются истинными”, и “ P1 не является истинным”.
  3.  Если P – правильный предикат, то (s)(P) – также является правильным предикатом, который утверждает, что существует такое значение переменной-кортежа s, при подстановке которого в предикат P на место всех вхождений переменной s, предикат P принимает значение “истина”. Например, предикат (s)(СОТРУДНИК(s)  s[ВОЗРАСТ] < 40) утверждает, что в отношении СОТРУДНИК существует кортеж s для сотрудника с возрастом меньше 40.
  4.  Если P – правильный предикат, то (s)(P) – также является правильным предикатом, который утверждает, что для всех значений переменной-кортежа s, при подстановке на место всех вхождений переменной s в предикат P, P принимает значение “истина”. Например, предикат (s)((СОТРУДНИК(s))  s[ВОЗРАСТ]  20) утверждает, что для всех сотрудников возраст не может быть меньше 20 лет.
  5.  Если P – правильный предикат, то (P) – также правильный предикат. Скобка могут расставляться всегда, когда возникает неоднозначность при интерпретации старшинства операторов. Обычно предполагается следующий порядок: арифметические сравнения (=,<,>,,,, здесь порядок любой), , , , , .
  6.  Ничто иное не является правильным предикатом.

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

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

Правильная формула реляционного исчисления кортежей предполагает, что предикат p(t) должен содержать единственную свободную переменную t. Все остальные переменные должны быть связаны.

Используя БД, рассматриваемую в лабораторной работе № 1, сформулируем примеры запросов с использованием формул реляционного исчисления с переменными кортежами.

Получить список авторов (publisher) проживающих в городе Харькове (adres).

{t(1)(u) (publishers(u)  (v) spr_publisher(v) t[1] = u[publisher]  

u[publisher] v[publisher] v[adres] = ‘Харьков’)}

Запрос на SQL для этого выражения можно записать в виде:

SELECT publisher from publishers AS a where exists

(select * from spr_publisher AS b where a.publisher=b.publisher

and address='Харьков')

Получить список адресов авторов (adres), которые опубликовали, по крайней мере, одну книгу в 2000 году (yearpub).

{t(1)(u) (spr_publisher(u) t[1] = u[adres] (v) (publishers(v) u[publisher] =

v[publisher] (w) (tiles(w) v[pub_id] = v[pub_id] w[yearpub] = 2000)))}

Запрос на SQL для этого выражения можно записать в виде:

SELECT address from spr_publisher AS a where exists

(select * from publishers AS b where a.publisher=b.publisher

and exists (select * from titles AS c where b.pub_id=c.pub_id

and c.yearpub=2000))

Получить список авторов (publisher), которые не проживают в городе Харьков (adres).

{t(1)(u) (publishers(u) t[1] = u[publisher] (v) (spr_publisher(v)  

u[publisher] = v[publisher] v[adres] = ‘Харьков’)))}

Запрос на SQL для этого выражения можно записать в виде:

SELECT publisher from publishers AS a where not exists

(select * from spr_publisher AS b where

a.publisher=b.publisher and b.address = 'Харьков')

2Задание к лабораторной работе

2.1. Реализовать следующие запросы средствами SQL:

  1.  Перечислить поставщиков, не поставляющих деталь Д1.
  2.  Перечислить поставщиков, не поставляющих детали Д1 или Д2.
  3.  Перечислить поставщиков, не поставляющих одновременно детали Д1 и Д2.
  4.  Перечислить поставщиков, поставляющих хотя бы одну деталь заданного списка (список задать самостоятельно через запрос).
  5.  Перечислить поставщиков, не поставляющих ни одной детали заданного списка (список задать самостоятельно через запрос).
  6.  Перечислить поставщиков, поставляющих одновременно детали Д1 и Д2.
  7.  Перечислить поставщиков, не поставляющих хотя бы одну деталь заданного списка (список задать самостоятельно через запрос).
  8.  Перечислить поставщиков, поставляющих все детали заданного списка (список задать самостоятельно через запрос).

2.2. Реализовать запросы на SQL, по заданным формулам реляционного исчисления.

Здесь (1) – означает, что результирующая таблица имеет арность 1, то есть 1 столбец.

  1.  {t(1) | ($ u) (POST(u) Ù t[1] = u[NP] Ù u[ADRES] = 'Москва')}
  2.  {t(2) | ($ u) (POST(u)  Ù t[1] = u[IMIA] Ù t[1] = u[NP] Ù ($ v) POSTKA(v) Ù u[NP] = v[NP] Ù v[ND] = 'Д2')}
    1.  {t(2) | ($ u) (POST(u)  Ù ($ v) (POSTKA(v)  Ù t[1] = u[IMIA] Ù t[1] = u[NP] Ù u[NP] = v[NP] Ù ($ w) (DETAL(w) Ù v[ND] = w[ND] Ù w[MATER] = ‘M1’)))}
    2.  {t(2) | ($ u) (POST(u) Ù t[1] = u[IMIA]  Ù t[2] = u[NP] Ù ($ v) POSTKA(v) Ù u[NP] = v[NP] Ù u[ND] = 'Д2')}
  3.  {t(1) | (($ u) (DETAL(u) Ù t[1] = u[ND] Ù u[CENA] > 3) Ú (($ v) (POSTKA(v) Ù v[ND] = u[ND] Ù v[NP] = '2')))}
  4.  {t(2) | ($ u) (POST(u) Ù t[1] = u[IMIA] Ù t[1] = u[NP] Ù u[NP] <> '6' ($ v) (POSTKA(v) Ù u[NP] = v[NP] Ù ($ w) (POSTKA(w) Ù v[ND] = w[ND] Ù w[NP] = '6')))}

3Оформление отчета

  1.  Титульный лист оформляется согласно традиционным требованиям, включая Номер работы, Номер группы и ФИО студента, а также кто принимал данную работу.
  2.  Содержание должно включать Тему лабораторной работы и Ход ее выполнения.
  3.  Ход выполнения работы должен содержать все инструкции SQL (SELECT) реализованные в лабораторной работе и полученные при этом результаты. Условия заданий записывать не обязательно.
  4.  Выводы.

4Контрольные вопросы

  1.  Виды реляционного исчисления.
  2.  Общий вид формулы реляционного исчисления с переменными - кортежами.
  3.  Общий вид формулы реляционного исчисления с переменными - доменами.
  4.  Возможные типы атомов реляционного исчисления с переменными - кортежами.
  5.  Эквивалентное преобразование формул реляционного исчисления с переменными - кортежами.
  6.  Безопасные выражения реляционного исчисления с переменными - кортежами.
  7.  Примеры записи формул реляционного исчисления с переменными - кортежами.
  8.  Принцип построения запросов на SQL с использованием квантора существования EXISTS.


 

А также другие работы, которые могут Вас заинтересовать

38707. Стратегия повышения конкурентоспособности ЗАО «Вемол» Верещагинского муниципального района Пермского края 9.86 MB
  3 Исследование мирового и российского рынка молочной продукции.2 Рынок молочной продукции Пермского края 67 2.3 Современные риски и угрозы в производстве молочной продукции. В настоящее время все большее количество исследователей уделяют внимание вопросам изучения конкурентоспособности продукции отдельных компаний городов регионов стран технологий работников и даже документов и нормативных актов.
38708. Построение обобщенных моделей Марковица, а также разработка методов оптимизации портфеля по этим моделям 1.48 MB
  Развитие математической модели нечеткой случайной величины для решения задач портфельного анализа. В первой главе диссертации развивается модель нечеткой случайной величины разработанная в работе [72]. Основное внимание направлено на представление нечеткой случайной величины и разработку исчисления позволяющего оценивать основные числовые характеристики нечеткой случайной величины: ожидаемое значение коэффициенты ковариации и дисперсию. Определение нечеткой случайной величины.
38709. ЛИНГВОСТАТИСТИЧЕСКОЕ ИССЛЕДОВАНИЕ И ЛЕКСИКОГРАФИЧЕСКОЕ ОПИСАНИЕ ЮРИДИЧЕСКОЙ ТЕРМИНОЛОГИИ В НЕСПЕЦИАЛЬНОЙ СФЕРЕ ИСПОЛЬЗОВАНИЯ 2.51 MB
  Грамматические категории юридических терминов и словосочетаний58 2. ПРИНЦИПЫ СОСТАВЛЕНИЯ ЧАСТОТНОГО СЛОВАРЯ ЮРИДИЧЕСКИХ ТЕРМИНОВ ИЗ ПРОИЗВЕДЕНИЙ ДЖ. О модели частотного словаря юридических терминов из произведений Дж.178 ПРИЛОЖЕНИЕ 2: Частотный словарь юридических терминов из произведений Дж.
38710. ДЕРМАТОСКОПИЯ В РАННЕЙ ДИАГНОСТИКЕ И СКРИНИНГЕ МЕЛАНОМЫ КОЖИ 401 KB
  Барсуков Актуальность темы Несмотря на то что частота МК составляет лишь 35 от всех первичных злокачественных опухолей кожи она относится к категории наиболее агрессивных опухолей метастазирующих как лимфогенным так и гематогенным путем Давыдов М. Нет четкого представления о дифференциальнодиагностических критериях доброкачественных и злокачественных пигментированных новообразований кожи. Цель исследования Разработка метода неинвазивной ранней диагностики МК на основе комплексного использования цифровой и Zoomфотографии кожи...
38711. ФОРМИРОВАНИЕ НАЛОГОВЫХ ДОХОДОВ ГОСУДАРСТВЕННОГО СЕКТОРА 743.5 KB
  Налоги — один из древнейших финансовых институтов. Их возникновение связано с возникновением и становлением государственности. Известно, что в VII—VI вв. до н. э. в Древней Греции уже были введены налоги на доходы в размере десятой или двадцатой части доходов. В понятии «налог» переплелись не только экономический и философский смысл, но и конкретная форма правовых взаимоотношений
38712. МЕТОД ТЕПЛОВОГО РАСЧЕТА БОЛЬШИХ КОСМИЧЕСКИХ ТЕЛЕСКОПОВ И ЕГО ПРОГРАММНАЯ РЕАЛИЗАЦИЯ 4.57 MB
  ЛЕБЕДЕВА На правах рукописи Шаенко Александр Юрьевич МЕТОД ТЕПЛОВОГО РАСЧЕТА БОЛЬШИХ КОСМИЧЕСКИХ ТЕЛЕСКОПОВ И ЕГО ПРОГРАММНАЯ РЕАЛИЗАЦИЯ Специальность 05.3] МЕТОД ТЕПЛОВОГО РАСЧЕТА [0. Существующие программные комплексы теплового расчета предназначены в основном для расчета космических аппаратов с небольшим разбросом температур. Прямая реализация расчета космических аппаратов с большим разбросом температур и сложной геометрической конфигурацией по классической вычислительной схеме приводит к необходимости использовать суперЭВМ в то время как...
38713. Определение биохимических и фармакокинетических свойств эритроцитов-переносчиков антрациклиновых антибиотиков 236.5 KB
  Преимущества использования нагруженных антрациклиновыми антибиотиками эритроцитов по сравнению со стандартными формами этих препаратов показаны в ряде экспериментов на культурах клеток и на животных [Zocchi 1988 1989 Bentti 1989 Gudreult 1989 tullkhnov 1992 1994]. Описаны случаи использования эритроцитов нагруженных доксорубицином в ветеринарии [Mtherne 1994] а также единичные случаи применения их в клинической практике [Tonetti 1992 tullkhnov 1997 Куликова 1998]. Однако несмотря на обнадеживающие результаты существует проблема...
38714. ФИЛОСОФСКИЙ СКЕПТИЦИЗМ И ПРОБЛЕМА ДОСТОВЕРНОСТИ ЗНАНИЯ 849.5 KB
  01 Онтология и теория познания Диссертация на соискание ученой степени кандидата философских наук Научный руководитель – доктор философских наук профессор Никоненко С. Логика практических контекстов знания . Философское сомнение и логические категории знания.