Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Моделирование баз данных.doc
Скачиваний:
4
Добавлен:
01.05.2025
Размер:
1.82 Mб
Скачать

3.2.3 Квантор всеобщности

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

Он используется в тех же целях, что и операция деления реляционной алгебры. Проиллюстрируем его применение на примере. В таблицу решения включим только тех клиентов, которые покупали каждый товар. Если проанализировать приведенные в разделе 3.2.2 таблицы, что только один клиент (Петров) покупал каждый товар. Решение в реляционном исчислении таково:

(r.CustName : r IN Customer AND there exists t IN Product AND exists s IN Sale)

(s.CustId = r.CustId AND s.ProdId = t.ProdId)

3.3 Заключение

В этой главе мы рассмотрели реляционную алгебру и реляционное исчисление Кодда. Оба этих теоретических языка манипулируют таблицами реляционной базы данных на основе их логических характеристик, не обращаясь к их физической структуре. Реляционная алгебра – это процедурный язык, дающий пошаговые решения задач создания запросов. Реляционное исчисление – непроцедурный язык, в котором решение формулируется в виде определения нужной таблицы, а не процесса получения желаемого результата. Кодд показал, что реляционная алгебра и реляционное исчисление логически эквивалентны. Другими словами, любой запрос, выполнимый на одном из этих языков, может быть выполнен и на другом.

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

3.4 Вопросы на повторение

  1. Объясните своими словами смысл терминов:

  • Реляционная алгебра

  • Непроцедурный

  • Реляционно полный

  • Пересечение

  • Вычитание

  • Проектирование

  • Естественное соединение

  • Тета-соединение

  • Деление

  • Квантор всеобщности

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

  • Выборка

  • Создание проекции

  • Соединение

  • Присвоение

  • Вычитание

  • Пересечение

  • Деление

  1. Объясните функции каждого из следующих элементов формулировки запроса в реляционном исчислении:

  • Целевой список

  • Определяющее выражение

  • Булевы операции (И, ИЛИ, НЕ)

  • Квантор существования

  • Квантор всеобщности

3.5 Упражнения и задачи

1) Пользуясь приведенной реляционной схемой базы данных, определите, какая(ие) операция(ии) может быть использована для ответа на поставленные вопросы:

КЛИЕНТ (идентификатор_клиента, имя, доход)

ПЕРЕВОЗКА (номер, идентификатор_клиента, вес, пункт_назначения, водитель)

  • Какие клиенты имеют годовой доход свыше 5 миллионов рублей?

  • Как называется клиент 555?

  • Какой пункт назначения перевозки №4566?

  • Как называются клиенты, отправлявшие грузы в Иваново?

  • В какие пункты назначения компании с годовым доходом более 10 миллионов рублей отправляли грузы?

2) Дайте решение следующих задач создания запросов в реляционной алгебре:

  • Список всех номеров грузов свыше 500 кг.

  • Название клиентов с годовым доходом более 10 миллионом рублей.

  • Названия городов, получавших грузы свыше 600 кг.

  • Имена водителей, доставлявших грузы в Кострому.

  • Клиенты, чьи грузы доставлял водитель Петров.

  • Клиенты с годовым доходом более 5 миллионов рублей, отправлявших грузы весом менее 1 кг.

  • Дайте список клиентов с максимальным годовым доходом.

  • Клиенты, чьи грузы перевозились каждым водителем.

3) Сформулируйте вопросы задания 2 в реляционном исчислении.

4) Над представленными отношениями выполнить теоретико-множественные и/или специальные реляционные операторы. При необходимости обеспечить совместимость отношений по типу.

  • Даны два отношения, кортежи которых содержат личные данные абитуриентов, поступающих в университет. Проиллюстрировать выполнение следующих теоретико-множественных операторов над отношениями А и В: объединение, пересечение и вычитание.

Таблица А

Фамилия

Имя

Отчество

паспорта

Адрес

Иванов

Иван

Иванович

1500607231

Владимир

Петров

Петр

Александрович

1300247882

Муром

Сидоров

Михаил

Викторович

1603549855

Владимир

Таблица В

Фамилия

Имя

Отчество

паспорта

Прописка

Соколов

Иван

Сергеевич

1600163481

Москва

Петров

Петр

Александрович

1300247882

Муром

Сергеев

Алексей

Викторович

1582449833

Ковров

  • Даны отношения А и В, кортежи которых содержат личные данные абитуриентов, поступающих в университет. Проиллюстрировать выполнение следующих теоретико-множественных операторов над отношениями А и В: объединение, пересечение и вычитание.

Таблица А

Фамилия

Имя

Отчество

паспорта

Адрес

Соколов

Сергей

Викторович

1400248912

Ковров

Иванов

Иван

Иванович

1500607231

Владимир

Петров

Петр

Александрович

1300247882

Муром

Сидоров

Михаил

Викторович

1603549855

Владимир

Таблица В

Фамилия

Имя

Отчество

Паспортные данные

Прописка

Соколов

Иван

Сергеевич

1600163481

Москва

Петров

Петр

Александрович

1300247882

Муром

Соколов

Сергей

Викторович

1544248912

Ковров

Сергеев

Алексей

Викторович

1582449833

Ковров

  • Дано отношение В, кортежи которого содержат информацию о сдаче вступительных экзаменов в университет. Проиллюстрировать выполнение реляционных операторов, позволяющих ответить на следующие вопросы: кто из абитуриентов получил положительные оценки на вступительных экзаменах в университет? когда и по каким предметам проводятся вступительные экзамены в университет?

Таблица В

экз. листа

Предмет

Дата экзамена

Оценка

1

Математика

20.06.2006

отлично

2

Информатика

25.06.2006

хорошо

1

Информатика

25.06.2006

отлично

2

Математика

20.06.2006

хорошо

3

Физика

23.06.2006

удовлетворительно

3

Математика

20.06.2006

хорошо

4

Информатика

25.06.2006

отлично

4

Математика

20.06.2006

хорошо

  • Даны отношения А и В, кортежи которых содержат информацию об абитуриентах и результатах сдачи экзаменов. Проиллюстрировать выполнение реляционных операторов, позволяющих ответить на следующие вопросы: какие оценки получил каждый студент на вступительных экзаменах в университет?кто из студентов получил на вступительных экзаменах хотя бы одну оценку «отлично»?кто из студентов получил оценку «отлично» по всем трем вступительным экзаменам?

Таблица А

Экз. листа

Фамилия

Имя

Отчество

1

Соколов

Сергей

Викторович

2

Иванов

Иван

Иванович

3

Петров

Петр

Александрович

4

Сидоров

Михаил

Викторович

Таблица В

экз. листа

Предмет

Дата экзамена

Оценка

1

Математика

20.06.2006

отлично

2

Информатика

25.06.2006

хорошо

1

Информатика

25.06.2006

отлично

2

Математика

20.06.2006

хорошо

3

Физика

23.06.2006

удовлетворительно

3

Математика

20.06.2006

хорошо

4

Информатика

25.06.2006

отлично

4

Математика

20.06.2006

хорошо

  • Даны отношения А и В, кортежи которых содержат информацию о проходных баллах по специальностям факультета информационных технологий и результатах сдачи экзаменов абитуриентами.Проиллюстрировать выполнение реляционных операторов, позволяющих ответить на следующие вопросы: кто из студентов и на какие специальности поступил, исходя из суммы баллов за два экзамена?Кто из студентов не поступит на специальность 230101?

Таблица А

абитуриента

Фамилия

Имя

Отчество

Сумма баллов

за два экзамена

1

Соколов

Сергей

Викторович

20

2

Иванов

Иван

Иванович

18

3

Петров

Петр

Александрович

20

4

Сидоров

Михаил

Викторович

19

Таблица В

Специальность

Проходной балл

230201

19

230202

18

230101

20

351400

20