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

  


 


4.4.0.Система управления базами данных LEAP

Для практического изучения команд реляционной алгебры здесь используется СУБД LEAP, разработанная Ричардом Лейтоном. Для того, чтобы закрепить свои знания:

  1. Изучите команды обработки отношений, которые описаны ниже на данной странице. Описание каждой команды приводится как в виде формального определения, так и в виде, поддерживаемом LEAP.
  2. Здесь находится более подробное описание возможностей СУБД LEAP.
  3. Здесь находится www-интерфейс к СУБД LEAP, посредством которого можно получить доступ к базе данных по печатным и электронным публикациям, касающихся темы данного курса.
  4. Здесь лежит список заданий, которые предлагается выполнить как средствами реляционной алгебры, так и средствами языка SQL.

4.4.1.Операции обработки кортежей.

Эти операции связаны с изменением состава кортежей в каком-либо отношении.

  • ДОБАВИТЬ — необходимо задать имя отношения и ключ кортежа.
  • УДАЛИТЬ — необходимо указать имя отношения, а также идентифицировать кортеж или группу кортежей, подлежащих удалению.
  • ИЗМЕНИТЬ — выполняется для названного отношения и может корректировать как один, так и несколько кортежей.

4.4.2.Операции обработки отношений.

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

В рассмотренных ниже примерах (которые заимствованы из книги Э.Озкарахан «Машины баз данных и управление базами данных» -М: «Мир», 1989) используются следующие отношения:

P(D1,D2,D3) Q(D4,D5) R(M,P,Q,T) S(A,B) 1 11 x x 1 x 101 5 a 5 a 2 11 y x 2 y 105 3 a 10 b 3 11 z y 1 z 500 9 a 15 c 4 12 x w 50 1 b 2 d w 10 2 b 6 a w 300 4 b 1 b В реляционной алгебре определены следующие операций обработки отношений:

  • ПРОЕКЦИЯ (ВЕРТИКАЛЬНОЕ ПОДМНОЖЕСТВО).
  • Операция проекции представляет из себя выборку из каждого кортежа отношения значений атрибутов, входящих в список A, и удаление из полученного отношения повторяющихся строк.  

  • ВЫБОРКА (ОГРАНИЧЕНИЕ, ГОРИЗОНТАЛЬНОЕ ПОДМНОЖЕСТВО).
  • На входе используется одно отношение, результат — новое отношение, построенное по той же схеме, содержащее подмножество кортежей исходного отношения, удовлетворяющих условию выборки.

     

  • ОБЪЕДИНЕНИЕ.
  • Отношения-операнды в этом случае должны быть определены по одной схеме. Результирующее отношение содержит все строки операндов за исключением повторяющихся.  

  • ПЕРЕСЕЧЕНИЕ.
  • На входе операции два отношения,  определенные по одной схеме. На выходе — отношение, содержащие кортежи, которые присутствуют в обоих исходных отношениях.  

  • РАЗНОСТЬ.
  • Операция во многом похожая на ПЕРЕСЕЧЕНИЕ, за исключением того, что в результирующем отношении содержатся кортежи, присутствующие в первом и отсутствующие во втором исходных отношениях.  

  • ДЕКАРТОВО ПРОИЗВЕДЕНИЕ
  • Входные отношения могут быть определены по разным схемам. Схема результирующего отношения включает все атрибуты исходных. Кроме того:

    • степень результирующего отношения равна сумме степеней исходных отношений
    • мощность результирующего отношения равна произведению мощностей исходных отношений.

     

  • СОЕДИНЕНИЕ
  • Данная операция имеет сходство с ДЕКАРТОВЫМ ПРОИЗВЕДЕНИЕМ. Однако, здесь добавлено условие, согласно которому вместо полного произведения всех строк в результирующее отношение включаются только строки, удовлетворяющие опредленному соотношению между атрибутами соединения 1,A2) соответствующих отношений.  

  • ДЕЛЕНИЕ
  • Пусть отношение R , называемое делимым, содержит атрибуты (A1,A2,…,An). Отношение S — делитель содержит подмножество атрибутов A: (A1,A2,…,Ak)(k<n). Результирующее отношение C определено на атрибутах отношения R, которых нет в S, т.е. Ak+1,Ak+2,…,An. Кортежи включаются в результирующее отношение C только в том случае, если его декартово произведение с отношением S содержится в делимом R.


Следующая глава: 4.5.Реляционное исчисление.


  


.

Форум: «Базы»;
Поиск по всему сайту: www.delphimaster.net;
Текущий архив: 2003.08.21;
Скачать: [xml.tar.bz2];

Вниз

Добавление кортежа в MS SQL 

Wistler   (2003-07-25 17:21) [0]

В таблицу нужно добавить кортеж. Атрибуты
UID :int (identity)
Atr1 : varchar
Atr2 : varchar
В программу нужно вернуть UID.

Если кто знает как это сделать, помогите плз.


sniknik   (2003-07-25 18:09) [1]

обьясни что такое "кортеж", и я его тебе добавлю. ;о))

если просто запись то


wistler   (2003-07-26 11:07) [2]

А как с помощью BDE?


Anatoly Podgoretsky   (2003-07-26 11:10) [3]

.Append
присвоение значений полям
.post

Но стоит ли работать с MSSQL через БДЕ


sniknik   (2003-07-26 13:54) [4]

wistler © (26.07.03 11:07)
> А как с помощью BDE?
а какая разница? то же самое в Query должно пройти.

ну или как Anatoly Podgoretsky © (26.07.03 11:10)


sniknik   (2003-07-26 13:56) [5]

p.s. а что такое "кортеж" всетаки?


Anatoly Podgoretsky   (2003-07-26 14:12) [6]

Запись в его понимании.


wistler   (2003-07-26 14:54) [7]

А разве запись это не кортеж?


Anatoly Podgoretsky   (2003-07-26 14:58) [8]

Не обязательно, как например относиться ко View


wistler   (2003-07-26 15:08) [9]

Через ADO работает, а через BDE нет.


Anatoly Podgoretsky   (2003-07-26 15:20) [10]

И не обязано, поскольку BDE не поддерживает всего для MSSQL, а ты даже не указываешь версии, как подключаешься и другую жизненноважную информацию, поэтому полноценного ответа тебе и не могут дать, так гадают.
Даже на вопрос, что такое кортеж ты не дал ответа.


wistler   (2003-07-26 15:25) [11]

Кортеж — строка в таблице.
MS SQL Server 2000 SP3
Delphi 7
Нужно ли ещё что-нить?


Форум: «Базы»;
Поиск по всему сайту: www.delphimaster.net;
Текущий архив: 2003.08.21;
Скачать: [xml.tar.bz2];

Наверх

Память: 0.73 MB
Время: 0.032 c

Реляционные операторы: реляционная алгебра

  1   2   3   4   5   6   7   8   9

ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ

Государственное образовательное учреждение

высшего профессионального образования

«ВОРОНЕЖСКИЙ ГОСУДАРСТВЕННЫЙ ПЕДАГОГИЧЕСКИЙ УНИВЕРСИТЕТ»
Кафедра информатики и методики преподавания математики

Учебно-методический комплект дисциплины«Информационные системы»

МЕТОДИЧЕСКИЕ УКАЗАНИЯ

К ЛАБОРАТОРНЫМ РАБОТАМ
Специальность 030100.00 Информатика с дополнительной специальностью

Воронеж

2005
ЛАБОРАТОРНАЯ РАБОТА № 1

Тема: Реляционные операторы: реляционная алгебра

Продолжительность 7 часов
1. Целью лабораторных работ является знакомство с математической основой языков манипулирования данными в реляционных информационных системах, а именно – с реляционной алгеброй.

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

3. Теоретические и справочно-информационные материалы.
Могут использоваться из Internet по ссылкам:

http://impm.vspu.ac.ru/~chul/Inf_Syst/index.htm

http://www.vspu.ac.ru/~chul/Inf_Syst/index.htm

    1. Введение

Операторы – третья и последняя часть реляционной модели.

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

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

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

Оба механизма (алгебра и исчисление) обладают важным свойством: они замкнуты относительно понятия отношения. Это означает, что выражения реляционной алгебры и формулы реляционного исчисления определяются над отношениями реляционных БД и результатом вычисления также являются отношения. В результате любое выражение или формула могут пониматься как отношения. Языки этих трех типов были предложены Е.Ф. Коддом и служат теоретической основой для описания действий, выполняемых над отношениями. Определенные в них элементарные операции реализуются в любом реальном языке запросов независимо от его внешнего оформления.

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

    1. Обзор реляционной алгебры

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

Расширенный начальный вариант алгебры, опеределенный Коддом, состоит из восьми алгебраических операций, которые делятся на два класса – теоретико множественные операции и специальные реляционные операции.

В состав теоретико множественных операций входят:

  • объединение отношений;
  • пересечение отношений;
  • взятие разности отношений;
  • декартово произведение отношений.

Специальные реляционные операции включают:

  • проекцию отношения;
  • соединение отношений;
  • деление отношений;
  • выборка или ограничение отношения.

Приведем общую интерпретацию этих реляционных операций:

  • Выборка: возвращает отношение, содержащее кортежи из заданного отношения, которые удовлетворяют указанным условиям;
  • Проекция: возвращает отношение, содержащее все кортежи заданного отношения, которые остались в этом отношении после исключения из него некоторых атрибутов;
  • Произведение: возвращает отношение, содержащее все возможные кортежи, которые являются сочетанием двух кортежей, принадлежащих соответственно двум заданным отношениям;
  • Объединение: возвращает отношение, содержащее все кортежи, которые принадлежат либо одному, либо обоим из заданных отношений;
  • Пересечение: возвращает отношение, содержащее кортежи, которые принадлежат одновременно двум заданным отношениям;
  • Разность: возвращает отношение. содержащее все кортежи, которые принадлежат первому из двух заданных отношений и не принадлежат второму;
  • Соединение: возвращает отношение, кортежи которого – это сочетания двух кортежей (принадлежащих соответственно двум определенным отношениям), имеющих общее значение для одного или нескольких общих атрибутов этих двух отношений ( и такие общие значения в результирующем кортеже появляются только один раз, а не дважды).
  • Деление: для двух отношений, бинарного и унарного, возвращает отношение, содержащее все значения одного атрибута бинарного отношения, которые соответствуют (в другом атрибуте) всем значениям в унарном отношении.

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

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

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

Только в этом случае будет действительно возможно строить вложенные выражения. Операции объединения, пересечения, взятия разности (вычитания) требуют от отношений-операндов совместимых по типу. Два отношения называются совместимыми по типу, если каждое из них имеет одинаковое множество имен атрибутов и если соответствующие атрибуты определены на одном и том же домене. Если необходимо выполнить операцию объединения, пересечения или вычитания двух отношений, которые почти совместимы по типу, за исключением некоторых различий в именах атрибутов, можно использовать оператор переименования, чтобы сделать эти отношения полностью совместимыми по типу, прежде чем выполнить необходимую операцию.

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

В дальнейшем рассмотрении будут приведены традиционное обозначение операции, например, как в [3, 8, 12, 16] (левое поле таблицы) и обозначение, принятое в книге Дейта [14] (правое поле). Для иллюстрирующих примеров используем базу данных поставщиков и деталей.

      1   2   3   4   5   6   7   8   9


    Добавить документ в свой блог или на сайт

    Похожие:

    Вы можете разместить ссылку на наш сайт:

    Литература

    l.120-bal.ru

    К. Дж.

    Дейт — SQL и реляционная теория. Как грамотно писать код на SQL

    05.07.2013

    Аннотация:

    Язык SQL распространен повсеместно. Но работать с ним непросто: он сложен, запутан, при написании SQL-команд легко допустить ошибку. Понимание теории, лежащей в основе SQL, – лучший способ гарантировать, что ваш код бу- дет написан правильно, а сама база данных надежна и легко сопровождаема. В предлагаемой книге К. Дж. Дейт – признанный эксперт, начавший зани- маться этими вопросами еще в 1970 году, – демонстрирует, как применить ре- ляционную теорию к повседневной практике работы с SQL. Автор подробно объясняет различные аспекты этой модели, рассуждает и доказывает, приво- дит многочисленные примеры использования этого языка в соответствии с ре- ляционной теорией.

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

    Год издания: 2010

    Издательство: Символ-плюс

    Формат: PDF

    Страниц: 474

    Скачано: 9486 раз

    Скачать книгу

     

    Комментарии

    Андрей, 17.07.2015 03:52

    Благодарю!!!

    Иван, 16.11.2015 00:35

    Спасибо!

    Александр, 03.04.2016 03:31

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

    Владимир, 01.09.2016 00:20

    не скачивается по ссылке, открывается новая вкладка. Поправьте пожалуйста. Спасибо

    Aigul, 24.09.2017 22:11

    Благодарю!

     

    Оставить комментарий

    Добавить комментарий

    Закрыть меню