Введение в базы данных 1.

advertisement
Виды отношений.
1. Именованные отношения – это переменное
отношение,
определённое
в
СУБД
посредством
операторов:

create Base relation;

create view;

create snapshot.
2. Базовым отношением называется именованное
отношение которое не является производным ( т.е. базовое
отношение является автономным).
3. Производным отношением называется отношение
определённое посредством реляционного выражения через
другие именованные отношения и в конечном счете через
базовые отношения.
4. Представлением (view) называется именованное
производное отношение. Представления виртуальны – они
представлены в системе исключительно через определения в
терминах других именованных отношений.
5. Снимки (snapshot) – это именованные производные
отношения, однако в отличии от представлений снимки
реальны, а не виртуальны.
Пример:
CREATE SNAPSHOT SC AS ((S JOIN P)
WHERE P# =’P2’)[S,CITY] REFRESH EVERYDAY;
Реляционные БД (РБД) – это БД воспринимаемая
пользователем как набор формализованных отношений
разной
степени.
Выражение
“воспринимаемое
пользователем” является решающим. Идея реляционной
модели применяется к внешнему и концептуальному
уровням системы, а не к внутреннему.
6.
Введение в базы данных
В 60-х годах была осознана необходимость применения
средств компьютерной обработки хранимой информации.
Это произошло в первую очередь там, где были накоплены
значительные объемы полезных данных: в военной
промышленности
и
бизнесе.
Появились
автоматизированные информационные системы АИС,
программно-аппаратные комплексы, предназначенные для
хранения, обработки информации и обеспечения ее
пользователя. Первые АИС работали в основном с
информацией фактического характера, такой, как
характеристики объектов и их связей. По мере
интеллектуализации
ЭВМ,
появилась
возможность
обрабатывать текстовые документы на естественном языке,
изображения и другие виды и форматы представления
данных.
Несмотря на то, что принципы хранения данных в
системах обработки фактической и документальной
(текстовой) информации схожи, алгоритмы обработки в них
заметно различаются. Поэтому в зависимости от характера
информационных ресурсов, которыми оперируют такие
системы, принято различать два их класса: документальный
и фактографический.
Документальные системы служат для работы с
документами на естественном языке: монографиями,
периодическими публикациями, текстами законодательных
актов.
Наиболее распространенный тип документальных
систем
–
информационно-поисковые
системы,
предназначенные для накопления и поиска по различным
критериям документов на естественном языке.
Другой большой класс автоматизированных систем –
фактографические системы. Они оперируют фактическими
сведениями, представленными в виде, специальным образом
организованной совокупности формализованных записей
данных.
Центральное
функциональное
звено
фактографических информационных систем – системы
управления базами данных СУБД. Фактографические
системы используются не только для реализации
справочных функций, но и для решения задач обработки
данных, т.е. имеются в виду задачи, связанные с вводом,
хранением, сортировкой и группировкой записей данных
однородной структуры. В большинстве случаев эти задачи
предусматривают предоставления пользователям итоговых
результатов обработки в виде отчетов в табличной форме.
Задачи, связанные с обработкой данных, решаются с
использованием АИС и широко распространены во всех
сферах деятельности, начиная с производства, управления
финансами и телекоммуникациями,
и заканчивая
управлением семейным бюджетом.
Массивы информации, накопленные в АИС, должны
быть оптимальным образом организованы для их
компьютерного хранения и обработки, должна быть
обеспечена их целостность и непротиворечивость.
Используя функции стандартных файловых систем
невозможно добиться нужной производительности при
решении подобных задач, поэтому все АИС опираются на
СУБД.
СУБД обеспечивает создание СУБД, поддержание ее в
актуальном состоянии и обеспечения эффективного доступа
пользователей и их приложений к содержащейся в ней
информации.
1.
Модели данных
Любая АИС оперирует с моделью той или иной части
реального мира предметной областью. Предметная область
рассматривается как некоторая совокупность реальных
объектов и связи между ними, причем каждый объект
обладает определенным набором свойств/атрибутов. Способ
отражения сущностей атрибутов и связей на структуры
данных определяются моделью данных. Принято выделять
иерархическую, сетевую, реляционную и объектноориентированную модели данных. Соответственно, говорят
об иерархических, сетевых, реляционных
и
объектно-ориентированных СУБД.
Иерархическая модель
позволяет строить БД с
иерархической древовидной структурой. Эта структура
определяется как дерево, образованное попарными связями.
На самом верхнем узле дерева имеется узел, называемый
корнем; все другие узлы, кроме корня, связываются только
с одним узлом на более высоком по отношению к ним
уровне.
Пример иерархической древовидной структуры
Реляционные обьекты данных. Домены и
отношения.
Начнем с неформального введения терминов:
Отношение, Картеж, Кардинальное число, Атрибут,
Степень, Домен, Первичный ключ
S#
SNAME
STATUS
CITY
S1
Иванов
20
Москва
S2
Петров
10
Киев
S3
Сидоров
30
Киев
S4
Рычков
20
Москва
S5
Робчук
30
Одесса
3.
Атрибуты
Степень
Отношение
Картежи
Кардинальное
число
Отношение соответствует тому, что до сих пор
называется таблицей. Кортеж соответствует строке этой
таблицы, а атрибут столбцу. Первичный ключ - это
уникальный индентификатор для таблицы, т.е. столбец или
такая комбинация столбцов, что в момент времени не
существует 2-х строк содержащих одинаковое значение в
этом столбце или комбинации столбцов. Домен – это общая
совокупность значений из которых берутся настоящие
значения для определения атрибутов определенного
отношения. Главный смысл замены заключается в том, что
ониограничивают сравнения.
Пример БД поставщиков и деталей.
S S#
SNAME
STATUS
CITY
S1
Smith
20
London
S2
Jones
10
Paris
S3
Blake
30
Paris
S4
Cleark
20
London
S5
Adams
30
Athems
Первичный ключ
P
Отделы
Начальник Сотрудники
Филиалы
Оборудование
Компьютер
Ксероксы
ы иерархической модели: простота
Основное достоинство
описания иерархических структур реального мира.
Если в модели каждый порожденный элемент может
иметь более одного исходного, то такая модель называется
сетевой, В ней элемент м/б связан с любым др. без
ограничений.
Сетевая БД может состоять из набора записей,
соответствующих каждому экземпляру объекта предметной
области и набора связей м/д ними.
Сотрудник 1
Проект 1
Сотрудник 2
Проект 2
Сотрудник N
Проект N
В данном примере сетевая модель хорошо отражает то,
что в проекте могут участвовать разные сотрудники и в то
же время сотрудник может участвовать в различных
проектах.
В реляционных БД вся информация представляется в
виде прямоугольных таблиц. Реляционная модель опирается
на систему понятий реляционной алгебры, важнейшие из
которых: таблица, отношение, строка, столбец, первичный
ключ. Все операции над реляционными БД сводится к
манипуляциям над таблицами.
Модели ОО-СУБД берут свое начало от ОО ЯП.
Основная идея, объединяющая эти две области, состоит в
том, что пользователям приходиться оперировать не
понятиями, связанными с аппаратным обеспечением (биты,
байты, записи, поля), а понятиями, которые более всего
отвечают структуре реального мира, а именно объектами и
операциями, определенными для этих объектов. Это
позволяет, в отличии от других БД, говорить о возможности
сохранения семантики предметной области в ОО БД
благодаря повышению уровня абстракции.
По состоянию на сегодняшний день заметно
доминирование реляционной модели в современных СУБД.
PNAME
Nut
Boet
Screw
Screw
Cam
Cog
COLOR WEIGHT CITY
Red
12
London
Green
17
Paris
Blue
17
Rome
Red
14
London
Blue
12
Paris
Red
19
London
SP
S#
P#
QTY
S1
P1
300
S1
P2
200
S1
P3
400
S1
P4
200
S1
P5
100
S1
P6
100
S2
P1
300
S2
P2
400
S3
P2
200
S4
P2
200
S4
P4
300
S4
P5
100
Пример по ограничению сравнений.
SELECT… //имеет смысл
SELECT //не имеет смысла
FROM P,SP
FROM P,SP
WHERE P.P# =SP.P#
WHERE P.WEIGHT = SP.QTY
2.
Организация
P#
P1
P2
P3
P4
P5
P6
Отношение.
Переменная отношения–это обычная переменная такая
же и в языках программировать, т.е. именованный объект
значение которого может изменятся со временем, а значение
этой переменной в любой момент времени и есть значение
отношения.
Отношение R определено на множестве доменов D1, D2…
DN(не обязательно различны) содержит две части заголовок
и тело.
Если представить отношение в терминах таблиц это
строка заголовков столбцов, а тело это множество строк
данных.
Заголовок
содержит
фиксированное
множество
атрибутов или точнее пар <имя атрибута : имя домена >:
{<A1: D1>,<A2: D2>…..<An: Dn>}
Тело содержит множество кортежей, кортежи содержат
множество пар < имя атрибута : значение атрибута>:
{<A1: Ni1>,<A2: Ni2>…..<An: Nin>}; i=1..m –количество
картежей
Значение m и n наз соответственно кординальным
числом и степенью отношения R.
Определение данных.
Определим синтаксис оператора:
GREATEBASE RELATION (base–relation)
attribute–definition–CommoList–список
определенных
атрибутов разделенных запятыми.
Candidate–Key–Definition–List–список
определенных
потенциальных ключей.
Foreign– Key–Definition–List – список определенных
внешних ключей
Определение
атрибута
имеет
форму
atrшbгte
DOMAIN(domain)
Если упустить спецификацию DOMAIN(domain) то
считается, что атрибут основан на домене с тем же именем.
Удаление базовых отношений.
DESTRON
BASE
RELATION
base_relation.–
предназначено для удаления всех кортежей указанного
базового отношения с последующим удалением в каталоге
всех записей в базовом отношение.
4.
Свойства отношений.
В любом отношении:
1)нет одинаковых кортежей. 2)кортежи не упорядочены
сверху вниз. 3)атрибуты неупорядочены слева направо.
4)все значения атрибутов атамарные.
 1 Это св-во следует из того факта, что тело отношения
это множество картежей, а мн-во, в математике, не
содержит одинаковых элементов. Важное следствие этого
св-ва в том что всегда существует первичный ключ. Т.к.
картежи уникальны, то по крайней мере комбинация всех
атрибутов будет обладать св-вом уникальности, а значит
при необходимости может служить первичным ключом.
 2 Это св-во также следует из того, что тело отношения
это математическое множество, а простые множества в
математике неупорядочены.
 3 Это св-во следует из того факта, что заголовок
отношения также определен как множество.
 4 Данное св-во является следствием того, что все
лежащие в основе домены содержат только атамарные
значения. Это св-во можно выразить иначе: каждой позиции
пересечения столбца и строки в таблице расположено в
точности одно значение, а не набор значений. Можно
сказать ещё и так: отношение не содержит групп
повторения.Отношения, удовлетворяющие этому условию,
называются нормализованными или представлены в первой
нормальной форме. Причина нормализации – простота
объектов, с которыми проводится работа, что, приводит к
упрощению всей системы.
5.
Целостность реляционных данных:
потенциальные и внешние ключи.
Ссылочная целостность.
Потенциальные ключи
Пусть R- некоторая переменная отношения, тогда
потенциальный ключ К для R – это подмножество
множества атрибутов R, обладающее следующими
свойствами:
1. Свойством уникальности, т.е. нет 2-х различных
картежей в текущем значении переменной R с одинаковым
значением K(key).
2. Свойство неизбыточности: никако еиз подмножеств
К не обладает свойством уникальности.
Синтаксис определения потенциального ключа:
Candidate – key – definition
::=CANDIDATE KEY(attribute - commalist)
| PRIMARY KEY(attribute - commalist)
Потенциальный ключ, состоящий из более чем одного
атрибута, называется составным, из одного атрибута –
простым.
ЗАМЕЧАНИЕ: хотя на практике отношение чаще всего
имеет только один потенциальный ключ, на самом деле их
может быть несколько.
Пусть есть отношение ELEMENTS , представляющее
таблицу химических элементов. Каждый элемент имеет
уникальное имя (свинец),уникальное обозначение (Pb), и
уникальное атомное число, поэтому имеет 3 потенциальных
ключа.
ЗАМЕЧАНИЕ: потенциальные ключи определены как
множества атрибутов, поэтому при ссылке используется { }
множества.
{S#, p#} – потенциальный ключ отношения Sp. В
нормальном контексте { }могут быть опущены.
ЗАМЕЧАНИЕ: Логическое понятие потенциального
ключа не следует путать с физическим понятием
уникального индекса, хотя последний часто играет роль
потенциального ключа.
ЗАМЕЧАНИЕ: Причина важности потенциальных
ключей заключается в том, что они обеспечивают основной
механизм адресации на уровне картежей в реляционной
системе.
7.
Правило внешних ключей.
Рассмотренное нами правило целостности выражено
исключительно в терминах состояния б/д любое состояние
не удовлетворяющее этому правилу не корректно. Но как
избежать таких некорректных состояний? Основная идея
заключается в следующем: для каждого внешнего ключа
необходимо ответить на следующий вопрос: Что должно
случиться при попытке удалить объект ссылки внешнего
ключа. Например удалить поставщика для которого есть по
крайней мере одна поставка. Для определенности
рассмотрим именно этот случай. Существует по меньшей
мере две возможности:
1)Ограничить операцию удаления до момента, когда не
будет существовать соответствующих поставок (в
противном случае операция запрещается).
2)Каскадировать операцию удаления, удаляя также
соответствующие поставки.
Аналогичные операции можно проводить при попытке
обновления потенциального ключа.
Учитывая выше сказанное разработчик должен указать
специальные правила внешних ключей для данного
внешнего ключа.
Введем синтаксис определения внешнего ключа
следующим образом:
FOREIGN KEY(…)REFERENCES base-relation
DELETE option
DELETE option
Здесь параметр option может принимать значения
RECTRICTED и CASCADES.
На самом деле количество возможностей при попытке
удаления определенного поставщика гораздо больше
рассмотренных двух операций. Дать название всем
возможным действиям не реально, поэтому в общем случае
параметр option в нашем синтаксисе должен включать
возможность вызова определенной при установке
процедуры БД (иногда называемой хранимой процедуры).
10.
NULL – значения.
NULL – значения в БД предлагаются для решения
проблемы отсутствующей информации, эта проблема
достаточно часто встречается в реальной жизни,
следовательно
необходимо
иметь
подход,
когда
сталкиваешься с такими ситуациями в формальных
системах БД.
Коддом был предложен подход в решении этой
проблемы, в котором для представления отсутствующей
информации используется специальный параметр, который
называют NULL – значением, тогда если данный кортеж
имеет NULL – значение в данной позиции атрибута, то это
означает, что в этом кортеже значение атрибута по
некоторой причине отсутствует.
В случае введения NULL – значения синтаксис
определения атрибута в операторе CREATE BASE
RELATION должно быть расширенно для включения
спецификации вида:
NULLS ALLOWED
NULLS NOT ALLOWED.
Если данному атрибуту не разрешено создавать NULL –
значения система будет отвергать любые попытки ввода
NULL – значения в эту область.
11.
РЕЛЯЦИОННАЯ АЛГЕБРА
Была придумана Коддом в одной из статей в
72г,содержала 4 традиционных оператора над множествами:
объединение, пересечение , разность , декартово
произведение; и спец реляционный операторы: :выборка,
проекция ,естественное соединение ,деление .Операндами
явл-ся отнош. ,а не произвольные мн-ва .
Должны работать с отношениями, имеющими
одинаковые заголовки .
Например :
выборка
проекция
произведен
12.
Первичные и альтернативные ключи
Как мы уже убедились базовое отношение может иметь
больше одного потенциального ключа. В таком случае в
реляционной модели по традиции один из потенциальных
ключей должен быть выбран в качестве первичного ключа,
а остальные потенциальные ключи, если они есть, будут
называться
альтернативными
ключами.
Если
потенциальный ключ один, то он же выступает и в роли
первичного ключа, если их несколько, то выбор первичного
ключа по существу произволен.
8.
Внешние ключи
Определим термин внешний ключ. Пусть R2 базовое
отношение, тогда внешний ключ, скажем FK, в отношении
R2 – это подмножество множества атрибутов R2 такое, что
1. Существует базовое отношение R1 (R1 и R2
необязательно различны) с потенциальным ключом CK
2. Каждое значение FK в текущем значении R2 всегда
совпадает со значением CK некоторого кортежа в текущем
значении
Замечание
1. Внешние ключи, как и потенцильные, определены
как множество атрибутов, поэтому используются фигурные
скобки
2. По определению каждое значение данного внешнего
ключа должно являться значением соответствующего
потенциального ключа, однако, обратное не требуется.
3. Данный внешний ключ будет составным или
простым, если сопоставленный ему потенциальный ключ
бкдет соответственно составным или простым
4. Значение внешнего ключа представлено с ссылкой к
кортежу,
содержащему
соответствующее
значение
потенциального ключа, поэтому проблема обеспечения
того, что база данных не включает никаких неверных
значений внешних ключей, известна как проблема внешней
целостности. Ограничение, по которому значения данного
внешнего ключа должны быть адекватны значениям
соответствующих потенциальных ключей называют
ссылочным ограничением. Отношение, которое содержит
внешний ключ, называется ссылающимся отношением, а
отношение,
которое
содержит
соответствующий
потенциальный ключ, называется ссылочным или целевым
отношением.
5. Ссылочные диаграммы. Рассмотрим б/д поставщиков
и деталей. Существующие в б/д ссылочные ограничения
можно представить следствиями следующей ссылочной
диаграммы (S<-SP->P).
6. Соответствие с внешней к потенциальному ключу
иногда называют клеем который удерживает б/д, как целое.
7. Введем правило ссылочной ценности. Б/д не должна
содержать несогласованных значений внешних ключей.
Здесь несогласованное значение внешнего ключа- это
значение внешнего ключа которого не существует,
отвечающего ему значения соответствующий ему потенциал
ключа соответствующем целевом отношении. Проще говоря
правило утверждает что если В ссылается на А, то А должно
существовать.
a x
b y
c
Объединение
Пересечение
ax
ay
bx
by
cx
cy
Вычитание
9.
a1
a2
a3
b1
b1
b2
ax
ay
az
bx
cy
делимое
Соединение (естественные)
b1
c1
a1
b1
c1
b2
c1
a2
b1
c1
b3
c2
a3
b2
c1
Деление
x
a
y
результат
делитель
ЗАМКНУТОСТЬ.
Рез. к\дой операции над отношениями также явл-ся
отношением. Это реляционное св-воназыв-ся св-вом
замкнутости. Т.к.результат операции имеет тотже тип ,что и
исходные обьекты(отнощения),то рез.одной операции
может использоваться в кач-ве исходных данных для
другой. Др.словами ,можем записывать вложенные
выражения, т.е.выр-ния ,в которых операнды сами
представлены в виде выр-ния вместо простых имен
отношений .
Если рассматривать замкнутость более строго, к\дая
реляционная операциядолжна быть представлено т.о.,чтобы
выдавать рез.надлежащим заголовком(т.е.соответствующим
набором атрибутов).Иначе говоря, необходим такой набор
правил наследования и имен атрибутов, встроенный в
алгебру ,чтобы можно было предсказывать имена атрибутов
на выходе произвольной реляционной операции,зная имена
атрибктов на вх.операции.
Для достижения этой цели необходим новый оператор
RENAME ,предназначенный для переименования атрибутов
в определенные отношения ,например:
S RENAME CITY AS SCITY
Другие атрибуты этого отношения наследуют имена
своих эквивалентов в отношении S без изменения, само
отношение безымянное.
13.
Проекция.
Пусть дано {XY…Z}
Проекция отношения А по атрибутам X, Y,…, Z, где
каждый из этих атрибутов принадлежат отношению А
называется отношением с заголовком {X,Y,…,Z} и телом
содержащим все картежи {X:x, Y;y, Z;z} таких для которых
в отношении А значение атрибута Х равно х, атрибута Y = y
… Z = z. Т.о. с помощью оператора проекции помечены
вертикальные подмножества данного отношения, т.е.
подмножество, полученное, исключением всех атрибутов не
указано в списке атрибутов и последующем исключением
дублирующих картежей. Из того, что осталось никакой
атрибут не может быть указан в списке более одного раза.
Пример:
S[CITY]
CITY
London
Paris
Athers
17.
14.
Синтаксис реляционной алгебры.
Expression
:: =monadic-expression| dyadic-expression
monadic- expression
::=renaming | restriction | projectium
renaming
::=team RENEME attribute as attribute
team
::=relution|( expression)
expression
restriction
::=|term where condition
projection
:: = |term |term[attribute - commolist]
dyadic- expression
:: = projection dyadic operation
::|UNION|INTESECT|MINUS|TIMES|JOIN|DIVIDE BY
Традиционные операции над множествами.
Для того, чтобы результаты над отношениями были
коректны ( т.е. сами представляли из себя отношения)
необходимо чтобы они были совместимы по типу . Будем
говорить что два отношения совместимы по типу ,если у
них идентичные заголовки ,а точнее :
1.если каждый из них имеет одно и тоже множество
атрибутов( следовательно они заведомо должны иметь одну
и туже степень).
2.если соответствующие атрибуты (т.е. атрибуты с теми
же самыми именами в двух отношениях ) определены на
одном и том же домене.
А (поставщик из Лондона)
S#
SNAME
STATUS
CITY
S1
Smith
20
London
S4
Clarc
20
London
В (поставщик детали Р 1)
S#
SNAME
STATUS
CITY
S1
Smith
20
London
S4
Jones
10
Paris
Объединением двух совместных по типу отношений А и
В (A UNION B) называются отношения с тем же
заголовком, как и в отношениях А и В и с телом, состоящим
из множеств всех картежей t ,принадлежащих А или В, или
обоим отношениям.
S#
SNAME
STATUS
CITY
S1
Smith
20
London
S4
Clarc
20
London
S2
Jones
10
Paris
Поставщики либо размещены в London либо поставляют
деталь Р1(либо и то и другое).
Замечание: Удаление дубликатов производиться кроме
объединения в проекции
Пересечение.
Пересечением двух совместимых по соотношению А и В
(А INTERSECT B) называется отношение с тем же
заголовком как и в отношениях А и В и с телом, состоящим
из множества всех кортежей Т, принадлежащих
одновременно обоим отношениям А и В.
Поставщики, которые поставляют в Лондоне и
поставляют деталь Р1.
S#
SNAME
STATUS
CITY
S1
Smith
20
London
Вычитание.
Вычитанием двух совместимых по типу А и В (А MINUS
B) называется отношением с тем же заголовком как и в
отношении А и В, принадлежащих отношению А и не
принадлежащих отношению В.
(А MINUS B) != (B MINUS A)
AminusB
S#
SNAME
STATUS
CITY
S4
Clearc
20
London
BminusA
S#
SNAME
STATUS
CITY
S2
Jones
10
Paris
Произведение.
Для декартового произведения двух отношений А и В,
где А и В не имеют общих имен и атрибутов определяются
как отношение с заголовком, который представляет собой
сцепление двух заголовков исходных отношений А и В и
телом, состоящего из всех кортежей Т таких, что Т
представляет собой сцепление кортежа a, принадлежащего
отношению А и b, принадлежащего B. Обратим внимание,
что кардинальное число результатов равно произведению
кардинальных чисел отношений А и В, а степень равна
сумме их степеней.
Синтаксические упрощения.
Легко проверить, что объедение ассоциативно, то есть А,
В, С – произвольные выражения \, дающие совместимые по
типу отношения, то выражения
(A UNION B) UNION C и A UNION (B UNION C)
эквивалентны.
Аналогичное замечание можно сделать и для операций
пересечение и декартового произведение (но не вычитание).
Отметим, объедение, пересечение, декартовое произведение
еще и коммутативны, то есть
(A UNION B)= (B UNION A).
15.
Специальные реляционные операции
.Выборка.
Это сокращенное название -выборки, где  обозначает
любой скалярный оператор сравнения =, !=, =>, <=.
 - это выборка из отношения А по атрибутам Х и У ( A
WHERE XY ) называется отношение имеющее тот же
заголовок что и отношение А
и тело, содержащее
множество всех кортежей Т отношения А, для кот
проверено условие XY дает значение истины . Атрибуты Х
и У определены на одном и том же домене. Как вместо
атрибута Х, так и вместо У может быть указана салярное
литерное значение, ( A WHERE XLiteral ) .
Благодаря свойству замкнутости определение можно
однозначно расширить до формы, в которой условие в
выражении WHERE будет содержать произвольное число
логических сочетаний таких простых сравнений, благодаря
следующим тождествам.
1. A WHERE C1 AND C2 
( A WHERE C1 ) INTERSECT ( A WHERE C2 )
2. A WHERE C1 AND C2 
( A WHERE C1 ) UNION ( A WHERE C2 )
3. A WHERE NOT C  A MINUS ( A WHERE C )
Пример:
S WHERE CITY = ‘London’
S#
SNAME
STATUS
CITY
S1
Smith
20
London
S2
Clark
20
London
P WHERE WEIGHT = 14
P#
PNAME
Color
WEIGHT
CITY
P1
Nut
Red
12
London
P3
Cam
Blue
12
Paris
SP WHERE S# = ‘S1’ AND P#=’P1’
S#
P#
QTY
S1
P1
300
16.
P[COLOR,CITY]
COLOR
Red
Green
Blue
Blue
(S WHERE CITY =”Paris”)[S#]
CITY
London
Paris
Rome
Paris
Естественное соединение.
Операция соединения им. несколько разновидностей
наиболее важной является естественное соединение,
обозначается JOIN. Пусть отношения А и В имеют
заголовки:
A {X1,…, Xm, Y1,…, Yn}
B {Y1,…, Yn, Z1,…, Zp}
Предполагаем также что соответствующие атрибуты (т.е.
атрибуты с одинаковым именем) определены на одном и
том же домене. Будем теперь рассматривать выражение
{X1,…, Xm}; {Y1,…, Yn}; {Z1,…, Zp} как три
соответствующих атрибута X,YиZ соответственно, Тогда
естественным соединением отношений А и В (A join B)
называется отношение с заголовком {X,Y,Z}и телом,
содержащим мн-во всех кортежей {X:x,Y:y,Z:z} таких, для
которых в отношении А значение аттрибута X равно x, А
аттрибута Y равно y и в отношении В значение атрибута Y =
y, а значение Z = z.
18.
S# SNAME
STATU
S
CITY
P# PNAME COLOR
WEI
GHT
S1 SMITH
S1 SMITH
S1 SMITH
S2 JONES
S2 JONES
S3 BLAKE
S3 BLAKE
S4 CLARK
S4 CLARK
S4 CLARK
20
20
20
10
10
30
30
20
20
20
LONDON
LONDON
LONDON
PARIS
PARIS
PARIS
PARIS
LONDON
LONDON
LONDON
P1
P4
P6
P2
P5
P2
P2
P1
P4
P6
12
14
19
17
12
17
12
12
14
19
RED
RED
RED
GREEN
BLUE
GREEN
BLUE
RED
RED
RED
P#
P1
P4
P6
P1
P4
P6
PNAME COLOR WEIGHT PCITY
NUT
RED
12 LONDON
SCREW RED
14 LONDON
CEG
RED
19 LONDON
NUT
RED
12 LONDON
SCREW RED
14 LONDON
CEG
RED
19 LONDON
Сравнение
строковых
значений
лексикографическом порядке.
происходит
в
Деление
Пусть отношения А и В имеют заголовки {X1,…..Xm,
Y1,…Yn} . Отношения А и В представляют соответственно
делимое и делитель . Предположим также, что
соответствующие атрибуты определены на одном и том же
домене. Пусть теперь выражения {X1,…Xm} и {Y1…Yn}
обозначают 2-а составных атрибута X и Y соответственно,
тогда делением отношения Ана В (A DIVIDE BY B)
называется отношение с заголовком {Х} и телом,
содержащим множество всех кортежей {X:x}таких, что
существует кортеж {X:x, Y:y}, который принадлежит
отношению А для всех кортежей {Y:y}, принадлежащих
отношению В.
Нестрого это можно сформулировать так: результат
содержит такие Х-значения из отношения А , для которых
соответствующие y-значения из А включают у-значения из
В.
Пример1
DEND
DOR
S#
P#
P#
S#
S1
P1
P1
S1
S1
P2
S2
S1
P3
S1
P4
DEND
S1
P5
DEVIDEBY
S1
P6
DOR
S2
P1
S2
P2
S3
P2
S4
P2
S4
P4
S4
P5
Пример2 DOR
P#
S#
P2
S1
P4
S4
20.
DEND
DEVIDEBY
DOR
Обратим внимание на последний пример3, в котором
делителем является отношение , содержащее номера всех
известных в данный момент деталей. В результате ,
очевидно, получим номера поставщиков, поставляющих все
эти детали.
Запросы типа деления чаще проще описываются в
терминах реляционных сравнений.
Примеры использования реляционной
алгебры.
1.Получить имена поставщиков, которые поставляют
деталь Р2.
(S JOIN (SP WHERE P#=’P2’)[S#] )[SNAME]
2.Получить имена поставщиков, которые поставляют по
крайней мере одну красную деталь.
(S JOIN (SP JOIN (P WHERE
COLOR=’Red’)[P#])[S#][SNAME]
ИЛИ (S JOIN (SP JOIN (P WHERE
COLOR=’Red’))[S#][SNAME]
3.Получить номера поставщиков, которые поставляют по
кркйней мере все те детали, которые поставляет поставщик
P2.
SP [S#, P#] DEVIDE BY (SP WHERE S#=S2)[P#]
4.Получить имена поставщиков, не поставляющих
детали Р2.
(SP [S#] MINUS (SP WHERE P#=P2)[S#] JOIN
S)[SNAME]
5.Получить все пары номеров, размещенных в одном
городе.
(((S RENAME S# AS FIRSTS#)[FIRSTS#,CITY] JOIN (S
RENAME S# AS SECONDS#)[SECONDS#,CITY] ) WHERE
FIRSTS# < SECONDS#)[FIRSTS#,SECONDS#]
Назначение алгебры.
Основная цель алгебры – обеспечить запись выражений.
Выражения служат символического высокоуровневого
представления намерений пользователя. Поэтому этими
выражениями можно манипулировать в соответствии с
многочисленными правилами преобразования. Например
выражение ((SP JOIN S) WHERE P#=’P2’)[SNAME] можно
преобразовать в эквивалентное, но возможно более
рациональное выражение ((SP WHERE P#=’P2’) JOIN
S)[SNAME]. Таким образом алгебра служит хорошим
базисом для оптимизации.
 СОЕДИНЕНИЕ:
Операция - соединение предназначается для тех
случаев, когда нам нужно соеденить вместе 2 отношения на
основе некоторых условий, отличных от эквивалентности.
Пусть отношения А и В не имеют общих аттрибутов, а 
определяются также, как и в операции выборки. Тогда соединение отношения А по аттрибуту х с отношением В по
аттрибуту У наз-ся результат вычисления выражения .
(A TIMES B) WHERE XY
Другими словами – это отношение с тем же заголовком,
что и пр декартовом произведении отношений А и В и с
телом содержащим множество кортежей t таких, что t
принадлежит этому декартовому произведению и
вычисление условия XY дает значение ИСТИНА для этого
кортежа. Атрибуты Х и У должны быть определены на
одном и том же домене, а операция должна иметь смысл для
этого домена .
Определим больше-соединение отношения S по
атрибуту CITY с отношением P по атрибут CITY
.Производим предварительное переименование атрибутов :
((S RENAME CITY AS SCITY) TIMES (P RENAME
CITY AS PCITY)) WHERE SCITY>PCITY
В результате мы получаем :
Операция расширения и подведения итогов.
Для обеспечения возможности проведения скалярных
вычислений в БД предназначена операция расширения. С
помощью этой операции из определенного отношения
создается новое отношение, создающее наряду с
имеющимися атрибутами новый атрибут, значение которого
получается посредством некоторых скалярных вычислений.
Например, можно записать:
EXTEND P ADD (WEIGHT * 454) AS GMWT перевод фунтов в граммы.
Теперь можно использовать атрибут GMWT в операциях
проверки, выборки и т.д.
Пример: (EXTEND P ADD (WEIGHT*454) AS GMWT)
WHERE GMWT>10000
Расширим ранее определенный синтаксис операции
EXTEND, добавив новый вид унарных выражений EXTEND
term ADD scalar-expression.
Рассмотренная операция расширения обеспечивает
возможность горизонтального или построчного вычисления
в алгебре.
Операция SUMMARIZE (подведения итогов) выполняет
аналогичную функцию для вертикальных вычислений.
Например с помощью выражения SUMMARIZE SP BY
(P#) ADD SUM(QTY) AS TOTQTY
Вычисляется отношение с заголовком (P#, TOTQTY), в
котором существует один кортеж для каждого значения P# в
отношении SP, в этом кортеже содержится значение P# и
соответствующее количество деталей
P#
TOTQTY
P1
600
P2
1000
P3
400
P4
500
P5
500
P6
100
Введем в ранее определенную синтаксическую таблицу
еще один вид унарных выражений
SUMMARIZE term BY (attribute-commalist) ADD
aggregate-expression AS attribute
Пример: SUMMARIZE (P JOIN SP) BY (CITY) ADD
COUNT AS NSP
CITY
NSP
London
5
Paris
6
Rome
1
Здесь COUNT – итоговая информация, определяемая как
число дублирующих кортежей. Она добавляется как
дополнительный атрибут NSP. В качестве итоговых
функций
выступают
следующие
функции:
SUM,
COUNT,AVG, MAX, MIN и др.
24.
Операции обновления.
Введем операцию реалиционного присвоения. Ее
синтаксис: TARGET:=SOURCE
Здесь SOURCE и TARGET реалиционные выражения,
представляющие совместимые по типу отношения.
Вычисленное значение SOURCE присваивается значению
TARGET, заменяя его старое значение. Теоретически
операции обновления можно было бы выполнять с
использованием введенной операции присваивания, и
операций UNION и MINUS. Однако такой подход не
позволяет должным образом обрабатывать ошибки, поэтому
на практике в реалиционных системах существуют явные
операции INSERT, UPDATE, DELETE. Приведем синтаксис
этих операций:
INSERT:INSERT SOURCE INTO TARGET
Пример: INSERT(S WHERE CITY=‘LONDON’) INTO
TEMP
UPDATE:UPDATE target assigment-commalist;
Каждое присвоение (ASSIGMENT) имеет форму:
Attribute:=scalar-expression
Пример:UPDATE
P
WHERE
COLOR=’RED’
CITY:=’PARIS’;
DELETE:DELETE TARGET;
Пример:DELETE S WHERE STATUS=20;
25.
S#
S1
23.
19.
S# SNAME STATUSSCITY
S2
Jones
10
Paris
S2
Jones
10
Paris
S2
Jones
10
Paris
S3 BLAKE
30
Paris
S3 BLAKE
30
Paris
S3 BLAKE
30
Paris
Пример3 (Деление)
DEND
DOR
P#
P#
P1
P1
P2
P2
P3
P3
P4
P4
P5
P5
P6
P6
P1
P2
P2
P2
P4
P5
S#
S1
S1
S1
S1
S1
S1
S2
S2
S3
S4
S4
S4
22.
S#
S2
S3
NOT
SCREW
COG
BOLT
CAM
BOLT
CAM
NUT
SCREW
COG
21.
Реалиционные сравнения.
Изначально определенная реалиционная алгебра не
поддерживает прямого сравнения двух отношений. Для
исправления этого упущения определим новый вид условияреалиционные сравнения со следующим синтаксисом:
Expression Θ expression
Здесь expression это в обоих случаях выражения
реалиционной алгебры представляющие совместимые по
типу отношения, а Θ- один из операторов сравнения.
Пример:
1) S[CITY]=P[CITY]
Значение совпадает ли проекция S по атрибуту CITY с
проекцией по отношению P с атрибутом CITY
2) S[S#]=SP[S#]- Если поставщики не поставляют детали.
Новый вид условия допустим для использования в
операциях выборки.
3) S WHERE ((SP RENAME S# AS X) WHERE X=S#)
[P#]=P[P#]
Получаем те картежи поставщиков, которые поставляют
все детали.
26.
Оглавление
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
Введение в базы данных
Модели данных
Реляционные обьекты данных. Домены и
отношения.
Отношение.
Свойства отношений.
Виды отношений.
Целостность реляционных данных:
потенциальные и внешние ключи.
Ссылочная целостность.
Первичные и альтернативные ключи
Внешние ключи
Правило внешних ключей.
NULL – значения.
РЕЛЯЦИОННАЯ АЛГЕБРА
ЗАМКНУТОСТЬ.
Синтаксис реляционной алгебры.
Традиционные операции над множествами.
Специальные реляционные операции
.Выборка.
Проекция.
Естественное соединение.
-СОЕДИНЕНИЕ:
Деление
Пример3 (Деление)
Примеры использования реляционной
алгебры.
Назначение алгебры.
Операция расширения и подведения итогов.
Операции обновления.
Реалиционные сравнения.
Download