Реляционная алгебра, операции реляционной алгебры. Операции над базой данных

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

хорошую работу на сайт">

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Министерство образования Российской Федерации

Пензенский государственный университет

Факультет вычислительной техники

Кафедра "Информационно-вычислительные системы"

Дисциплина "Базы данных"

Отчет по лабораторной работе № 1

"Операции с базой данных"

Выполнил: ст-ка гр. 13ВЭ1

Юдина С.В.

Принял: к. т. н., доцент

Долгова И.А.

  • 1. Цель работы
  • Задание
  • 2. Выполнение работы
  • Создание базы данных
  • Регистрация базы данных
  • Подключение к базе данных
  • Извлечение метаданных
  • Удаление базы данных
  • Заключение
  • Приложения

1. Цель работы

Изучить операции с базами данных в целом. Получить навыки использования приложения "IBExpert" для создания, удаления, регистрации, подключения, извлечения метаданных, резервного копирования и восстановления базы данных СУБД Firebird. Изучить SQL-операторы для создания, подключения и удаления базы данных.

Задание

1) Изучить операции с базами данных в целом.

2) Получить навыки использования приложения "IBExpert" для создания, удаления, регистрации, подключения, извлечения метаданных, резервного копирования и восстановления базы данных СУБД Firebird.

3) Изучить SQL-операторы для создания, подключения и удаления базы данных.

Для варианта 17 исходными данными являются имя файла с БД - YudinaDom1. FDB, Логин - TEAM001, Пароль - slave001.

2. Выполнение работы

Создание базы данных

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

Файл базы данных имеет имя D: \Data\Лр1\YudinaDom1. FDB, Сервер - удаленный, Имя сервера - sqledu03, Протокол - TCP/IP, Client Library File - C: \Program Files\Firebird\Firebird_2_5\bin\fbclient. dll, Имя пользователя - TEAM001, Пароль - slave001, Размер страницы БД - 16384, Кодировка - WIN1251, Диалект БД - Диалект 3.

База данных зарегистрирована под именем YudinaDom1. FDB. При этом использован сервер Firebird версии 2.5 (См. Приложение A, Рис.1. Создание БД).

Регистрация базы данных

Для регистрации базы данных нужно выбрать пункт меню База данных > Зарегистрировать базу. В результате открывается диалоговое окно "Регистрация базы данных", в котором надо заполнить практически такие же поля, что и при создании базы данных, затем нажать кнопку . После регистрации вся введенная о базе данных информация запоминается приложением IBExpert и в окно "Database Explorer", в дерево на вкладке "Базы" добавляется узел с зарегистрированной базой данных (См. Приложение А, Рис.2. Регистрация БД).

база оператор резервное копирование

Подключение к базе данных

Чтобы подключиться к зарегистрированной базе данных, необходимо выбрать базу данных в списке и выполнить команду База данных > Подключиться к базе. Название подключенной базы данных в окне "Database Explorer" будет выделено жирным шрифтом, а также появятся вложенные узлы с объектами, содержащимися в подключенной базе данных (См. Приложение А, Рис.3. Подключение к БД).

Извлечение метаданных

Для извлечения метаданных используется команда главного меню Инструменты > Извлечение метаданных, которая открывает окно "Извлечение метаданных". В окне устанавливаем флажок "Извлечь всё", затем с помощью выпадающего списка "Извлекать в" выбираем "Script Executive", в которое будут извлечены метаданные, а затем нажимаем кнопку [Начать извлечение] (См. Приложение А, Рис.4. Извлечение метаданных). После извлечения открывается окно "Редактор скриптов", в котором будут находиться извлеченные метаданные. (См. Приложение А, Рис.5. Извлечение метаданных (редактор скриптов)).

Удаление базы данных

Для удаления базы данных необходимо выбрать команду меню База данных > Удалить базу, а затем подтверждаем свое желание в диалоговом окне. (См. Приложение А, Рис.6. Удаление БД (меню База данных)).

Создание базы данных при помощи "Редактора скриптов"

Для создания базы данных необходимо выполнить в приложении IBExpert команду Инструменты > Редактор скриптов, затем ввести команды, создающие базу данных в окне "Редактор скриптов" и нажать кнопку [Выполнить скрипт] (См. Приложение А, Рис.7. Создание БД (редактор скриптов). В результате должно появиться сообщение об успешном выполнении скрипта. Для дальнейшей работы необходимо вновь выполнить регистрацию базы данных и подключиться к ней.

Резервное копирование базы данных и ее восстановление

Для создания резервной копии базы данных с помощью приложения "IBExpert" необходимо выполнить команду меню Службы > Резервирование базы данных, в открывшемся диалоговом окне "Резервирование БД" задать несколько параметров и нажать кнопку [Начать резервное копирование]. В результате будет создан файл с резервной копией (См. Приложение А, Рис.8. Резервное копирование).

Для восстановления базы данных из резервной копии используется команда Службы > Восстановление базы данных. В результате открывается диалоговое окно "Восстановление БД", в котором надо в поле "Restore Info" выбрать строку "Новую базу", в поле "Database file" ввести имя восстанавливаемого файла базы данных (SQLEDU03: D: \DATA\Лр1\YudinaDom1. FDB), в поле "File Name" ввести имя файла, из которого будет восстанавливаться база данных, затем нажать кнопку (См. Приложение А, Рис.9. Восстановление БД).

Файлы, полученные при выполнении лабораторной работы.

Отредактирован сценарий создания базы данных. (См. Приложение А, Рис. 10. Редактор сценария базы данных). Сохранен файл сценария на сервере в папке "ЛР1"с таким же именем, как и имя базы данных, стандартное расширение". sql".

В результате выполнения лабораторной работы были созданы следующие файлы:

1) Сценарий - D: \Data\Лр1\ YudinaDom1. sql

2) БД - D: \Data\Лр1\ YudinaDom1. fdb

3) Резервная копия БД - D: \Data\Лр1\YudinaDom1. fbk

4) Файл с отчетом - D: \Data\Лр1\Отчет1. odt

Ответы на контрольные вопросы

1. Дать определение термина "База данных".

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

2. Что означают сокращения СУБД и DBMS?

Система Управления Базами Данных. Database Management System .

3. Какие операции проводятся с базой данных в целом?

Добавление новых данных, удаление, редактирование.

4. Что представляет собой база данных СУБД Firebird? Какой получился размер файла с базой данных? От чего он зависит? Что содержится в файле с базой данных?

СУБД Firebird - это реляционная СУБД, предназначенная для использования в приложениях с архитектурой клиент/сервер. В Firebird база данных представляет собой один или несколько файлов, в которых хранятся данные пользователя и метаданные - 2,40 Мбайта. От количества содержащейся информации. Первичные файлы данных, вторичные файлы данных и файлы журналов.

Размер влияет на эффективность работы СУБД, размер страницы рекомендуется делать равным размеру кластера файловой системы, по умолчанию размер страниц равен 16384.

6. Что надо сделать, чтобы в базе данных можно было хранить символы русского алфавита?

Поле ввода "Кодировка" предназначено для выбора набора символов национального алфавита для текстовых полей базы данных. Русские символы Windows содержатся в кодировке Win1251. Если в это поле ввести NONE, то будет поддерживаться кодировка, используемая операционной системой.

7. Назвать отличия между первым и третьим диалектами базы данных.

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

8. Какие существуют способы создания и удаления базы данных?

Для создания базы данных можно использовать один из двух способов:

1. Выполнить команду База данных > Создать базу в приложении IBExpert, ввести параметры создаваемой базы данных в диалоговом окне "Создание базы данных" и нажать кнопку [OK ].

2. Выполнить в приложении IBExpert команду Инструменты > Редактор скриптов , затем ввести команды, создающие базу данных в окне "Редактор скриптов" и нажать кнопку [Выполнить скрипт ] (F9).

Для удаления:

1. Выполнить в программе "IBExpert" команду меню База данных > Удалить базу, а затем подтвердить свое желание в диалоговом окне.

2. Выполнить SQL-оператор DROP DATABASE.

3. Удалить файл с базой данных вручную.

9. Как указывается путь до файла с базой данных, расположенной на удаленном компьютере?

Имя сервера: Путь к файлу (sqledu03: D: \Data\Лр1\ YudinaDom1. fdb)

10. Какие стандартные расширения имеют файлы баз данных и сценариев?

Файл базы данных". fdb", сценария". sql".

11. Как с помощью приложения "IBExpert" подключиться к имеющейся базе данных, расположенной на локальном компьютере?

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

12. Какое имя и начальный пароль имеет администратор сервера Firebird?

Имя: SYSDBA, пароль: masterkey.

13. Какие виды комментариев могут содержать файлы сценариев для выполнения операций с базой данных?

Сценарий может содержать поясняющие комментарии двух видов: многострочный комментарий (начинается символами "/*" и заканчивается символами "*/") и однострочный комментарий, который начинается символами " - " и продолжается до конца строки.

14. Сколько системных таблиц содержит созданная база данных? С каких символов они начинаются? Привести названия любых 3-х системных таблиц.

34 таблицы. Начинается с символа "sys.". Примеры: "sys. sysschobjs" - Существует в каждой базе данных. Каждая строка представляет объект базы данных; "sys. sysscalartypes" - Существует в каждой базе данных. Содержит по строке на каждый системный или пользовательский тип данных; "sys. sysowners" - Существует в каждой базе данных. Каждая строка соответствует участнику базы данных.

15. Каковы правила оформления текста сценария?

Выражения в операторе всегда начинается с новой строки, с отступом в 1 позицию от правого края родительского элемента оператора (SELECT, FROM, WHERE, INTO, …). Содержащиеся в сценарии операторы отделяются друг от друга символом ";". При объявлении таблиц наименования столбцов, типы, значения по умолчанию, ограничения Nullable выравниваются по левому краю.

Заключение

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

Размещено на Allbest.ru

Подобные документы

    Система управления базами данных (СУБД). Программные средства, предназначенные для создания, наполнения, обновления и удаления базы данных. Структура, модели и классификация баз данных. Создание каталогов, псевдонимов, таблиц, шаблонов и форм СУБД.

    презентация , добавлен 09.01.2014

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

    курсовая работа , добавлен 19.11.2012

    Классификация баз данных. Выбор системы управления базами данных для создания базы данных в сети. Быстрый доступ и получение конкретной информации по функциям. Распределение функций при работе с базой данных. Основные особенности иерархической модели.

    отчет по практике , добавлен 08.10.2014

    Язык описания данных Oracle. Предназначение базы данных для хранения информации. Создание и изменение таблиц с помощью операторов Create и Alter table. Правила именования таблицы. Операторы Rename и Truncate. Метод создания и удаления представления.

    презентация , добавлен 14.02.2014

    Механизм и основные этапы создания и администрирования базы данных для Картотеки книг или библиотеки при помощи средств Microsoft SQL Server. Характеристика данной базы и требования, предъявляемые к ней. Основные операции с исследуемой базой данных.

    курсовая работа , добавлен 21.06.2011

    Понятие реляционной модели данных, целостность ее сущности и ссылок. Основные этапы создания базы данных, связывание таблиц на схеме данных. Проектирование базы данных книжного каталога "Books" с помощью СУБД Microsoft Access и языка запросов SQL.

    курсовая работа , добавлен 25.11.2010

    Проектирование физической и логической моделей удаленной базы данных для АЗС. Разработка базы данных в СУБД Firebird с помощью утилиты IBExpert. Создание клиентского приложения для Windows с использованием клиент-серверной технологии в среде C++ Builder.

    курсовая работа , добавлен 18.01.2017

    Создание базы данных в среде MS Access. Создание и работа с базой данных в ателье. Алгоритм решения задачи. Выбор пакета прикладных программ. Проектирование форм выходных документов с использованием СУБД MS Access. Структура записи таблиц базы данных.

    курсовая работа , добавлен 30.01.2009

    СУБД - многопользовательские системы управления базой данных, специализирующиеся на управлении массивом информации. Запросы на выборку и изменение данных, формирование отчетов по запросам выборки. Схема базы данных. Программа по управлению базой данных.

    реферат , добавлен 27.12.2013

    Назначение базы данных для обеспечения работы автобусного парка. Основные возможности админпанели. Выполняемые базой данных и приложением функции. Инфологическое моделирование данных. Описание разработанного web-приложения. Проектирование базы данных.

^

Лекция № 4. Реляционная алгебра. Унарные операции

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

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

^

1. Унарная операция выборки

Первой унарной операцией, которую мы рассмотрим, является операция выборки – операция выбора строк из таблицы, представляющей отношение, по какому

либо принципу, т. е. выбор строк

кортежей, удовлетворяющих определенному условию или условиям.

^ Оператор выборки обозначается σ <P >, условие выборки P <S >, т. е., оператор σ берется всегда определенным условием на кортежи P , а само условие P записывается зависящим от схемы отношения S . С учетом всего этого сама операция выборки над схемой отношения S применительно к отношению r

σ <P >r (S ) σ <P >r = {t (S ) |t r & P <S >t } = {t (S ) |t r & IfNull (P <S >t , False };

Результатом этой операции будет новое отношение с той же схемой отношения S , состоящее из тех кортежей t (S ) исходного отношения

операнда, которые удовлетворяют условию выборки Pt . Понятно, что для того, чтобы применить какое

то условие к кортежу, необходимо подставить значения атрибутов кортежа вместо имен атрибутов.

Чтобы лучше понять принцип работы этой операции, приведем пример. Пусть дана следующая схема отношения:

^ S : Сессия (№ зачетной книжки, Фамилия, Предмет, Оценка).

Условие выборки возьмем такое:

P <S > = (Предмет = ‘Информатика’ and Оценка > 3).

Нам необходимо из исходного отношения

операнда выделить те кортежи, в которых содержится информация о студентах, сдавших предмет «Информатика» не ниже, чем на три балла.

Пусть также дан следующий кортеж из этого отношения:

t 0 (S ) ∈ r (S

Применяем наше условие выборки к кортежу t 0 , получаем:

Pt 0 = (‘Базы данных’ = ‘Информатика’ and 5 > 3);

На данном конкретном кортеже условие выборки не выполняется.

А вообще результатом этой конкретной выборки

σ <Предмет = "Информатика" and Оценка > 3 > Сессия

будет таблица «Сессия», в которой оставлены строки, удовлетворяющие условию выборки.

^

2. Унарная операция проекции

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

либо признаку. А именно машина выбирает те атрибуты (т. е. буквально те столбцы) исходного отношения

операнда, которые были указаны в проекции.

^ Оператор проекции обозначается [S" ] или π . Здесь S" – подсхема исходной схемы отношения S , т. е. ее некоторые столбцы. Что это означает? Это означает, что у S’ атрибутов меньше, чем у S , потому что в S" остались только те из них, для которых выполнилось условие проекции. А в таблице, представляющей отношение r (S" ), строк столько же, сколько их у таблицы r (S ), а столбцов – меньше, так как остались только соответствующие оставшимся атрибутам. Таким образом, оператор проекции π< S"> применительно к отношению r (S ) дает в результате новое отношение с другой схемой отношения r (S" ), состоящее из проекций t (S ) [S" ] кортежей исходного отношения. Как определяются эти проекции кортежей? Проекция любого кортежа t (S ) исходного отношения r (S ) на подсхему S" определяется следующей формулой:

t (S ) [S’ ] = {t (a )|a def (t ) ∩ S ’}, S " ⊆S .

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

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

π <S" >r (S ) ≡ π <S’ >r r (S ) [S ’] ≡ r [S" ] = {t (S ) [S’ ] | t r };

Рассмотрим пример, иллюстрирующий принцип работы операции выборки.

Пусть дано отношение «Сессия» и схема этого отношения:

S : Сессия (№ зачетной книжки, Фамилия, Предмет, Оценка);

Нас будут интересовать только два атрибута из этой схемы, а именно «№ зачетной книжки» и «Фамилия» студента, поэтому подсхема S" будет выглядеть следующим образом:

^ S" : (№ зачетной книжки, Фамилия).

Нужно исходное отношение r (S ) спроецировать на подсхему S" .

t 0 (S ) ∈ r (S ): {(№ зачетной книжки: 100), (Фамилия: ‘Иванов’), (Предмет: ‘Базы данных’), (Оценка: 5)};

Значит, проекция этого кортежа на данную подсхему ^ S" будет выглядеть следующим образом:

t 0 (S ) S" : {(№ зачетной книжки: 100), (Фамилия: ‘Иванов’)};

Если говорить об операции проекции в терминах таблиц, то проекция Сессия [№ зачетной книжки, Фамилия] исходного отношения – это таблица Сессия, из которой вычеркнуты все столбцы, кроме двух: № зачетной книжки и Фамилия. Кроме того, все дублирующиеся строки также удалены.

^

3. Унарная операция переименования

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

^ Оператор переименования выглядит следующим образом: ρ<φ >, здесь φ – функция переименования .

Эта функция устанавливает взаимно

однозначное соответствие между именами атрибутов схем S и Ŝ, где соответственно S – схема исходного отношения, а Ŝ схема отношения с переименованными атрибутами. Таким образом, оператор ρ <φ> в применении к отношению r (S ) дает новое отношение со схемой Ŝ , состоящее из кортежей исходного отношения только с переименованными атрибутами.

Запишем операцию переименования атрибутов в терминах систем управления базами данных:

ρ <φ > r (S ) ≡ ρ <φ >r = {ρ <φ > t (S )| t r };

Приведем пример использования этой операции:

Рассмотрим уже знакомое нам отношение Сессия, со схемой:

S: Сессия (№ зачетной книжки, Фамилия, Предмет, Оценка);

Введем новую схему отношения Ŝ, с другими именами атрибутов, которые мы бы хотели видеть вместо имеющихся:

Ŝ : (№ ЗК, Фамилия, Предмет, Балл);

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

φ : (№ зачетной книжки, Фамилия, Предмет, Оценка) → (№ ЗК, Фамилия, Предмет, Балл);

Фактически, требуется поменять имя только у двух атрибутов, поэтому законно будет записать следующую функцию переименования вместо имеющейся:

φ : (№ зачетной книжки, Оценка) (№ ЗК, Балл);

t 0 (S ) r (S ): {(№ зачетной книжки: 100), (Фамилия: ‘Иванов’), (Предмет: ‘Базы данных’), (Оценка: 5)};

Применим оператор переименования к этому кортежу:

ρ<φ> t 0 (S ): {(№ ЗК: 100), (Фамилия: ‘Иванов’), (Предмет: ‘Базы данных’), (Балл: 5)};

Итак, это один из кортежей нашего отношения, у которого переименовали атрибуты.

В табличных терминах отношение

ρ < № зачетной книжки, Оценка «№ ЗК, Балл > Сессия –

это новая таблица, полученная из таблицы отношения «Сессия», переименованием указанных атрибутов.

^

4. Свойства унарных операций

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

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

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

1) соотношение мощностей:

а) для операции выборки: | σ <P >r |≤ |r |;

б) для операции проекции: | r [S" ] | ≤ |r |;

в) для операции переименования: | ρ <φ >r | = |r |;

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

В случае же операции переименования, мощность отношения не изменяется, за счет того, что при смене имен никакие кортежи из отношения не исключаются;

2) свойство идемпотентности:

а) для операции выборки: σ <P > σ <P >r = σ <P >;

б) для операции проекции: r [S’ ] [S’ ] = r [S" ];

в) для операции переименования в общем случае свойство идемпотентности неприменимо.

Это свойство означает, что двойное последовательное применение одного и того же оператора к какому

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

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

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

И последнее свойство, которое мы рассмотрим, – это свойство монотонности. Интересно заметить, что при любых условиях все три оператора монотонны;

3) свойство монотонности:

а) для операции выборки: r 1 r 2 ⇒ σ <P > r 1 σ <P >r 2 ;

б) для операции проекции: r 1 r 2 r 1 [S" ] r 2 [S" ];

в) для операции переименования: r 1 r 2 ρ <φ >r 1 ⊆ ρ <φ >r 2 ;

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

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

Рассмотрим операции реляционной алгебры. Чтобы Вам не отвлекаться на содержание таблиц не Ваших баз данных, таких как "Продукты", "Водители", "сливы", "груши", "чай", "кофе", Владимиры, Сергеи и т.п. будем выполнять операции над отношениями (таблицами) с абстрактными данными, такими как R1, R2 (названия таблиц - отношений) и т.д. и А1, А2, А3 (названия атрибутов - столбцов) и h15, w11 и т.п. (содержание записей таблиц базы данных).

Приоритеты выполнения операций реляционной алгебры (в порядке убывания пунктов списка, а в одном пункте - операции с равными приоритетами):

  • селекция, проекция
  • декартово произведение, соединение, пересечение, деление
  • объединение, разность.

Операция выборки

Операция выборки работает с одним отношением и определяет результирующее отношение R , которое содержит только те кортежи (или строки, или записи), отношения , которые удовлетворяют заданному условию (предикату P ).

Таким образом, операция выборки - унарная операция - и записывается следующим образом:

где P - предикат (логическое условие).

Запрос SQL

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

R3
A1 A2 A3 A4
3 hh yl ms
4 pp a1 sr
1 rr yl ms

Просматриваем столбец А3 и устанавливаем, что предикату A3>"d0" удовлетворяют записи в первой и третьей строках исходного отношения (так как номер буквы y в алфавите больше номера буквы d). В результате получаем следующее новое отношение, в котором две строки:

R
A1 A2 A3 A4
3 hh yl ms
1 rr yl ms

Комбинировать всевозможные логические условия для выборок Вам поможет материал "Булева алгебра (алгебра логики)" .

Запрос SQL

SELECT A1, A2, A3 from R1 UNION SELECT A1, A2, A3 from R2

Теперь посмотрим, что получится в результате выполнения этой операции реляционной алгебры и соответствующего ей запроса SQL. Теперь даны два отношения, так как операция объединения - бинарная операция:

R1 R2
A1 A2 A3 A1 A2 A3
Z7 aa w11 X8 pp k21
B7 hh h15 Q2 ee h15
X8 pp w11 X8 pp w11

Объединяем строки первого и второго отношения и видим, что третья строка, которая является третьей и в первом, и во втором отношении - идентичны, поэтому её включаем в новое отношение только один раз. Получаем следующее отношение:

R
A1 A2 A3
Z7 aa w11
B7 hh h15
X8 pp w11
X8 pp k21
Q2 ee h15

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

Операция пересечения

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

Запрос SQL

SELECT A1, A2, A3 from R1 INTERSECT SELECT A1, A2, A3 from R2

В некоторых диалектах SQL отсутствует ключевое слово INTERSECT. Его заменой, например, в MySQL и других, является INNER JOIN. О том, как работает оператор SQL JOIN вообще и его разновидности INNER JOIN, LEFT OUTER JOIN, RIGHT OUTER JOIN и FULL OUTER JOIN - на уроке SQL JOIN - соединение таблиц базы данных .

Запрос MySQL

Теперь посмотрим, что получится в результате выполнения этой операции реляционной алгебры и соответствующего ей запроса SQL. Вновь даны два отношения R1 и R2:

R1 R2
A1 A2 A3 A1 A2 A3
Z7 aa w11 X8 pp k21
B7 hh h15 Q2 ee h15
X8 pp w11 X8 pp w11

Просматриваем все записи в двух отношениях, и обнаруживаем, что и в первом, и во втором отношении есть одна строка - та, которая является третьей и в первом, и во втором отношении. Получаем новое отношение:

R
A1 A2 A3
X8 pp w11

Операция разности

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

Запрос SQL

SELECT A1, A2, A3 from R2 EXCEPT
SELECT A1, A2, A3 from R1

Установим, что получится в результате выполнения этой операции реляционной алгебры и соответствующего ей запроса SQL. Вновь даны два отношения R1 и R2:

R1 R2
A1 A2 A3 A1 A2 A3
Z7 aa w11 X8 pp k21
B7 hh h15 Q2 ee h15
X8 pp w11 X8 pp w11

Из отношения R2 исключаем строку, которая есть также в отношении R2 - третью - и получаем новое отношение:

R
A1 A2 A3
X8 pp w11
Q2 ee h15

Операция декартова произведения

Операция декартова произведения () определяет новое отношение R, которое является результатом конкатенации каждого кортежа отношения R1 с каждым кортежем отношения R2.

Запрос SQL

SELECT * from R3, R4

Установим, что получится в результате выполнения этой операции реляционной алгебры и соответствующего ей запроса SQL. Даны два отношения R3 и R4:

R3 R4
A1 A2 A3 A4 A5 A6
3 hh yl ms 3 hh
4 pp a1 sr 4 pp
1 rr yl ms

В новом отношении должны присутствовать все атрибуты (столбцы) двух отношений. Сначала первая строка отношения R3 сцепляется с каждой из двух строк отношения R4, затем вторая строка отношения R3, затем третья. В результате должно получиться 3 Х 2 = 6 кортежей (строк). Получаем такое новое отношение:

R
A1 A2 A3 A4 A5 A6
3 hh yl ms 3 hh
3 hh yl ms 4 pp
4 pp a1 sr 3 hh
4 pp a1 sr 4 pp
1 rr yl ms 3 hh
1 rr yl ms 4 pp

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

Поехали …

Что такое SQL?

SQL (Structured Query Language) – структурированный язык запросов, универсальный компьютерный язык, применяемый для создания, модификации и управление данными в реляционных базах данных

Что такое реляционная база данных?

Это совокупность взаимосвязанных данных хранящихся в виде отношений

Что такое отношения?

Отношение это некое множество картежей

Что такое кортеж?

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

Продемонстрирую кортеж из двух элементов с помощью графа:

Вершины графа это элементы их некоторого множества, в данном случае, это элемент а1 из множества А и элемент b1 из множества B . Ребро между вершинами обозначает связь между элементами или как говорят элемент а1 находится в отношение с b1 .

Продемонстрирую этот же кортеж с помощью таблицы:

Номер 1 у а1 и b1 , был выбран произвольно.

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

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

Продемонстрирую, как представить отношение в виде графа:

На графике видно, что есть несколько кортежей, причем какой кортеж первый, а какой второй и третий не важно , это просто множество кортежей. В множестве нет такого понятия «первый», «второй» и «третий», это всё сразу и очередность не важна.

Продемонстрирую, как представить отношение в виде таблицы:

Последовательность строк или кортежей в таблице не важна , из графа я их взял в произвольном порядке.

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

Как было сказано в самом начале, что реляционная база данных это совокупность взаимосвязанных данных хранящихся в виде отношений . Если представлять отношения в виде таблиц, то реляционная БД это некий набор взаимосвязанных таблиц . Выходит SQL это язык создания, модификации и управление таблицами в реляционной БД .

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

Все операции продемонстрировать не возможно, в связи с их большим количеством, приведу только базовые:

1. Селекция (другие имена операции — выборка, ограничение)

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

Пусть есть отношение, назовем его «исходная таблица №1»:

Результат «выборки» из исходной таблицу №1, при условии что А=а3

На языке SQL:

синтаксис — SELECT * FROM имя_таблицы WHERE имя_столбца=значение

SELECT * FROM исходная_таблица WHERE А=a3

2. Проекция

Операция «проекция» выполняется над одним отношением , в результате неё формируется новое отношение с указанными столбцами таблицы .

Например, есть отношение, назовем ее «исходная таблица №2»:

Произведем над данным отношением операцию «проекция» по атрибутам А и С , результат:

В результате мы получили два одинаковых картежа, в отношение такого быть не может, поэтому сократим их (в СУБД сокращения происходят автоматически):

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

На языке SQL:

синтаксис — SELECT список_столбцов FROM имя_таблицы

реализация для данного случая — SELECT А,С FROM исходная_таблица_№2

3. Естественное соединение

Операция «естественное соединение » выполняется над двумя логическими связанными отношениями , в результате неё формируется новое отношение со столбцами первого и второго отношения и с кортежами, которые получаются в результате соединения каждого кортежа первого и второго отношения . На примере должно быть более понятно, пусть есть два отношения, назовем их исходная таблица №3.1 и исходная таблица №3.2:

Исходная таблица №3_1

Исходная таблица №3_2

Проведем операцию «соединения» первого и второго отношения, результат:

Интересно заметить, что мы получили исходное отношение из раздела «2. Проекция», последовательность столбцов в отношение значения не имеет.

На языке SQL:

реализация для данного случая — SELECT исходная_таблица_№3_1.*, исходная таблица №3_2.В FROM исходная_таблица_№3_1, исходная таблица №3_2 WHERE исходная таблица №3_1.A= исходная таблица №3_2.A

4. Объединение

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

Исходная таблица №4_1

Исходная таблица №4_2

Произведем операцию «объединения» отношения №4.1 и отношения №4.2 , результат:

На языке SQL:

синтаксис — SELECT список_столбцов_таблицы1 FROM таблица1 UNION SELECT список_столбцов_таблицы2 FROM таблица2

реализация для данного случая — SELECT А,В FROM исходная_таблица_№4_1 UNION SELECT А,В FROM исходная_таблица_№4_2

5. Пересечение

Операция «пересечение» выполняется , результат операции новое отношение, которое включает в себя одинаковые кортежи «первого» и «второго» отношения .

Пример, пусть есть два отношения:

Исходная таблица №5_1

Исходная таблица №5_2

Произведем операцию «пересечения» с данными отношениями, результат:

Т.е. в результирующее отношение, попали повторяющиеся кортежи из «первого» и «второго» отношения.

На языке SQL:

синтаксис — SELECT одна_из_таблиц.столбец1, одна_из_таблиц.столбец2, … FROM таблица1,таблица2 WHERE таблица1.столбец1=таблица2.столбец1 AND таблица1.столбец2= таблица2.столбец2 AND …

реализация для данного случая –

SELECT исходная_таблица_№5_1.А, исходная_таблица_№5_1.В FROM исходная_таблица_№5_1, исходная_таблица_№5_2 WHERE исходная_таблица_№5_1.А = исходная_таблица_№5_2.А AND исходная_таблица_№5_1.В = исходная_таблица_№5_2.В

6. Вычитание (разность)

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

Пример, пусть есть два отношения:

Исходная таблица №6_1

Исходная таблица №6_2

Произведем операцию «разность» , т.е. от исходной таблицы №6_1 отнимем исходную таблицу №6_2, результат:

Т.е. результирующее отношение, это «первое» отношение без повторяющихся кортежей «второго» отношения.

На языке SQL:

реализация для данного случая – SELECT исходная_таблица_№6_1.А, исходная_таблица_№6_1.В FROM исходная_таблица_№6_1 WHERE NOT EXISTS (SELECT исходная_таблица_№6_2.А, исходная_таблица_№6_2.В FROM исходная_таблица_№6_2
WHERE исходная_таблица_№6_2.А= исходная_таблица_№6_1.А AND исходная_таблица_№6_2.В= исходная_таблица_№6_1.В)

7. Декартово произведение

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

Пример, пусть есть два произвольных отношения:

Исходная таблица №7_1

Исходная таблица №7_2

Произведем «декартово произведение» данных двух отношений, результат:

На языке SQL:

реализация для данного случая – SELECT исходная_таблица_№7_1.А, исходная_таблица_№7_1.В, исходная_таблица_№7_2.А, исходная_таблица_№7_2.В FROM исходная_таблица_№7_1, исходная_таблица_№7_2

Мы разобрались с основными операции над отношениями и напоследок теоретической части поста разберемся что такое ключ.

Что такое ключ?

Ключ – это один или не сколько столбцов таблицы , которые однозначно определяют запись (строку) . Пример, пусть есть отношение представленное в виде таблицы:

Ключом данного отношения может быть столбец А . Т.к. значения только данного столбца в отношение , например: а3 определяет запись «а3 b1 d3» , a2 определят запись «a2 b2 d3» , a1 определяет запись «a1 b2 d1» . Другие столбцы данную функцию нести не могут.

Если ключ состоит из одного столбца , то его называют простым , если из нескольких его называют составным . В данной таблице, помимо простого ключа, есть еще один – составной, состоящий из столбцов B и D . Значения этих столбцов однозначной определят запись (строки), пример: b1 и d3 однозначно определяет запись «a3 b1 d3» , b2 и d3 однозначной определяет запись «a2 b2 d3» , b2 и d1 однозначно определяет запись «a1 b2 d1» .

На практике обычно выбирают один ключ , причем самый простой , в данном случае это столбец А . Такой ключ также называют «первичный ключ ».

Вам будет интересно:

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

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

1. Унарная операция выборки

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

Оператор выборки обозначается ? <P >, условие выборки P <S >, т. е., оператор ? берется всегда с определенным условием на кортежи P , а само условие P записывается зависящим от схемы отношения S . С учетом всего этого сама операция выборки над схемой отношения S применительно к отношению r

? <P >r (S ) ? ? <P >r = {t (S ) |t ? r & P <S >t } = {t (S ) |t ? r & IfNull (P <S >t , False };

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

Чтобы лучше понять принцип работы этой операции, приведем пример. Пусть дана следующая схема отношения:

S : Сессия (№ зачетной книжки, Фамилия, Предмет, Оценка).

Условие выборки возьмем такое:

P <S > = (Предмет = ‘Информатика’ and Оценка > 3).

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

Пусть также дан следующий кортеж из этого отношения:

t 0 (S ) ? r (S

Применяем наше условие выборки к кортежу t 0 , получаем:

Pt 0 = (‘Базы данных’ = ‘Информатика’ and 5 > 3);

На данном конкретном кортеже условие выборки не выполняется.

А вообще результатом этой конкретной выборки

? <Предмет = "Информатика" and Оценка > 3 > Сессия

будет таблица «Сессия», в которой оставлены строки, удовлетворяющие условию выборки.

2. Унарная операция проекции

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

Оператор проекции обозначается [S" ] или ? . Здесь S" – подсхема исходной схемы отношения S , т. е. ее некоторые столбцы. Что это означает? Это означает, что у S’ атрибутов меньше, чем у S , потому что в S" остались только те из них, для которых выполнилось условие проекции. А в таблице, представляющей отношение r (S" ), строк столько же, сколько их у таблицы r (S ), а столбцов – меньше, так как остались только соответствующие оставшимся атрибутам. Таким образом, оператор проекции ?< S"> применительно к отношению r (S ) дает в результате новое отношение с другой схемой отношения r (S" ), состоящее из проекций t (S ) [S" ] кортежей исходного отношения. Как определяются эти проекции кортежей? Проекция любого кортежа t (S ) исходного отношения r (S ) на подсхему S" определяется следующей формулой:

t (S ) [S’ ] = {t (a )|a ? def (t ) ? S ’}, S " ?S .

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

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

? <S" >r (S ) ? ? <S’ >r ? r (S ) [S ’] ? r [S" ] = {t (S ) [S’ ] | t ? r };

Рассмотрим пример, иллюстрирующий принцип работы операции выборки.

Пусть дано отношение «Сессия» и схема этого отношения:

S : Сессия (№ зачетной книжки, Фамилия, Предмет, Оценка);

Нас будут интересовать только два атрибута из этой схемы, а именно «№ зачетной книжки» и «Фамилия» студента, поэтому подсхема S" будет выглядеть следующим образом:

S" : (№ зачетной книжки, Фамилия).

Нужно исходное отношение r (S ) спроецировать на подсхему S" .

t 0 (S ) ? r (S ): {(№ зачетной книжки: 100), (Фамилия: ‘Иванов’), (Предмет: ‘Базы данных’), (Оценка: 5)};

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

t 0 (S ) S" : {(№ зачетной книжки: 100), (Фамилия: ‘Иванов’)};

Если говорить об операции проекции в терминах таблиц, то проекция Сессия [№ зачетной книжки, Фамилия] исходного отношения – это таблица Сессия, из которой вычеркнуты все столбцы, кроме двух: № зачетной книжки и Фамилия. Кроме того, все дублирующиеся строки также удалены.

3. Унарная операция переименования

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

Оператор переименования выглядит следующим образом: ?>, здесь ? - функция переименования .

Эта функция устанавливает взаимно-однозначное соответствие между именами атрибутов схем S и S, где соответственно S - схема исходного отношения, а S - схема отношения с переименованными атрибутами. Таким образом, оператор ? <?> в применении к отношению r (S ) дает новое отношение со схемой S , состоящее из кортежей исходного отношения только с переименованными атрибутами.

Запишем операцию переименования атрибутов в терминах систем управления базами данных:

? <? > r (S ) ? ? <? >r = {? <? > t (S )| t ? r };

Приведем пример использования этой операции:

Рассмотрим уже знакомое нам отношение Сессия, со схемой:

S: Сессия (№ зачетной книжки, Фамилия, Предмет, Оценка);

Введем новую схему отношения S, с другими именами атрибутов, которые мы бы хотели видеть вместо имеющихся:

S:

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

? : (№ зачетной книжки, Фамилия, Предмет, Оценка) > (№ ЗК, Фамилия, Предмет, Балл);

Фактически, требуется поменять имя только у двух атрибутов, поэтому законно будет записать следующую функцию переименования вместо имеющейся:

? : (№ зачетной книжки, Оценка) > (№ ЗК, Балл);

t 0 (S ) ? r (S ): {(№ зачетной книжки: 100), (Фамилия: ‘Иванов’), (Предмет: ‘Базы данных’), (Оценка: 5)};

Применим оператор переименования к этому кортежу:

? t 0 (S ): {(№ ЗК: 100), (Фамилия: ‘Иванов’), (Предмет: ‘Базы данных’), (Балл: 5)};

Итак, это один из кортежей нашего отношения, у которого переименовали атрибуты.

В табличных терминах отношение

? < № зачетной книжки, Оценка > «№ ЗК, Балл > Сессия -

это новая таблица, полученная из таблицы отношения «Сессия», переименованием указанных атрибутов.

4. Свойства унарных операций

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

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

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

1) соотношение мощностей:

а) для операции выборки: | ? <P >r |? |r |;

б) для операции проекции: | r [S" ] | ? |r |;

в) для операции переименования: | ? <? >r | = |r |;

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

В случае же операции переименования, мощность отношения не изменяется, за счет того, что при смене имен никакие кортежи из отношения не исключаются;

2) свойство идемпотентности:

а) для операции выборки: ? <P > ? <P >r = ? <P >;

б) для операции проекции: r [S’ ] [S’ ] = r [S" ];

в) для операции переименования в общем случае свойство идемпотентности неприменимо.

Это свойство означает, что двойное последовательное применение одного и того же оператора к какому-либо отношению равносильно его однократному применению.

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

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

И последнее свойство, которое мы рассмотрим, – это свойство монотонности. Интересно заметить, что при любых условиях все три оператора монотонны;

3) свойство монотонности:

а) для операции выборки: r 1 ? r 2 ? ? <P > r 1 ? ? <P >r 2 ;

б) для операции проекции: r 1 ? r 2 ? r 1 [S" ] ? r 2 [S" ];

в) для операции переименования: r 1 ? r 2 ? ? <? >r 1 ? ? <? >r 2 ;

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



Есть вопросы?

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: