Вход/Регистрация
Базы данных: конспект лекций
вернуться

Коллектив авторов

Шрифт:

r1 x Инструменты [Код инструмента, Имя инструмента] r2 (Код поставщика, Имя поставщика, Город поставщика,

Код инструмента
, Код инструмента, Имя инструмента);

Получившийся результат обозначим r2, дублирующиеся атрибуты исключаем:

r1 x Инструменты [Код инструмента, Имя инструмента] r2 (Код поставщика, Имя поставщика, Город поставщика, Код инструмента, Имя инструмента);

Заметим, что из отношения Инструменты мы берем только два атрибута: «Код инструмента» и «Имя инструмента». Чтобы это осуществить мы, как можно заметить из записи отношения r2, применили унарную операцию проекции: Инструменты [Код инструмента, Имя инструмента], т. е., если бы отношение Инструменты было представлено в виде таблицы, результатом этой операции проекции стали бы два первых столбца с заголовками соответственно «Код инструмента» и «Имя инструмента».

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

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

3. Напишем унарную операцию выборки по условию <«Имя инструмента» = «Плоскогубцы»> применительно к отношению r2, полученному в предыдущем пункте. А к результату этой операции применим, в свою очередь, унарную операцию проекции [Код поставщика, Имя поставщика, Город поставщика], для того чтобы получить все значения этих атрибутов, потому что именно эту информацию нам и требуется получить исходя из заказа.

Итак:

(<Имя инструмента = «Плоскогубцы»> r2) [Код поставщика, Имя поставщика, Город поставщика] r3 (Код поставщика, Имя поставщика, Город поставщика, Код инструмента, Имя инструмента).

В результирующем отношении, обозначенном через r3, оказались только те поставщики (со всеми своими опознавательными данными), которые поставляют инструменты с родовым именем «Плоскогубцы». Но нам в силу заказа необходимо выделить тех поставщиков, которые, наоборот, не поставляют таких инструментов. Поэтому перейдем к следующему действию нашего алгоритма и запишем последнее выражение реляционной алгебры, которое и даст нам искомую информацию.

4. Сначала составим разность отношения «Поставщики» и отношения r3, а после применения этой бинарной операции применим унарную операцию проекции на атрибуты «Имя поставщика» и «Город поставщика».

(Поставщики \ r3) [Имя поставщика, Город поставщика] r4 (Код поставщика, Имя поставщика, Город поставщика);

Результат обозначили r4, в это отношение и вошли как раз только те кортежи исходного отношения «Поставщики», которые соответствуют условию нашего заказа.

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

Лекция № 6. Язык SQL

Дадим сначала небольшую историческую справку.

Язык SQL, предназначенный для взаимодействия с базами данных, появился в середине 1970-х гг. (первые публикации датируются 1974 г.) и был разработан в компании IBM в рамках проекта экспериментальной реляционной системы управления базами данных. Исходное название языка – SEQUEL (Structured English Query Language) – только частично отражало суть этого языка. Первоначально, сразу после его изобретения и в первичный период эксплуатации языка SQL, его название являлось аббревиатурой от словосочетания Structured Query Language, что переводится как «Язык структурированных запросов». Конечно, язык был ориентирован главным образом на удобную и понятную пользователям формулировку запросов к реляционным базам данных. Но, в действительности, он почти с самого начала являлся полным языком баз данных, обеспечивающим, помимо средств формулирования запросов и манипулирования базами данных, следующие возможности:

1) средства определения и манипулирования схемой базы данных;

2) средства определения ограничений целостности и триггеров (о которых будет упомянуто позднее);

3) средства определения представлений баз данных;

4) средства определения структур физического уровня, поддерживающих эффективное выполнение запросов;

5) средства авторизации доступа к отношениям и их полям.

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

В настоящее время SQL – это уже не аббревиатура, а название самостоятельного языка.

Также в настоящее время язык структурированных запросов реализован во всех коммерческих реляционных системах управления базами данных и почти во всех СУБД, которые изначально основывались не на реляционном подходе. Все компании-производители провозглашают соответствие своей реализации стандарту SQL, и на самом деле реализованные диалекты языка структурированных запросов очень близки. Этого удалось добиться не сразу.

  • Читать дальше
  • 1
  • ...
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: