Главная Обратная связь

Дисциплины:

Архитектура (936)
Биология (6393)
География (744)
История (25)
Компьютеры (1497)
Кулинария (2184)
Культура (3938)
Литература (5778)
Математика (5918)
Медицина (9278)
Механика (2776)
Образование (13883)
Политика (26404)
Правоведение (321)
Психология (56518)
Религия (1833)
Социология (23400)
Спорт (2350)
Строительство (17942)
Технология (5741)
Транспорт (14634)
Физика (1043)
Философия (440)
Финансы (17336)
Химия (4931)
Экология (6055)
Экономика (9200)
Электроника (7621)


 

 

 

 



Элементы реляционного исчисления



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

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

Базисными понятиями реляционного исчисления являются:

- понятие переменной с определенной для нее областью допустимых значений.

- понятие правильно построенной формулы, опирающейся на переменные, предикаты и кванторы.

Аналитические выражения записывают в одной из следующих форм:

а) { t | Y (t) } - читается так: “множество переменных t таких, что истинна формула Y

б) { t1, t2, ... tk | Y ‘ ( t1, t2, ... tk ) }

гдеt- переменная - кортеж,

t1,...tk - переменные на доменах,

k - ранг отношения,

Y- формула, построенная из атомов.

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

8.2. Реляционное исчисление кортежей

Атомы формулY могут быть трех типов:

1. R(S) - означает, что S - это кортеж в отношенииR

2. s[i] @ u[j] - означает, чтоi-ая компонента S и j-ая компонентаU связаны оператором сравнения (< > =).Например: s[1] < u[3] справедливо для кортежей s = (1, 6, 6, 6) и u = (2, 2, 5, 2)

3. s[i] @ const или const @ s[i], - аналогичная п.2 связь с константой. Например, s[3] = “СИДОРОВ”

Формулы составляются из атомов по следующим правилам:

1. Каждый атом - это формула

2. Если Y 1 и Y 2 - формулы, то Y 1 Щ Y 2, Y 1 Ъ Y 2, Ш Y 1 - тоже формулы.

3. Если Y - формула, то ($ s) (Y )- тоже формула, которая утверждает, что существует такое значение переменнойS, при котором Y истинна.

4. Если Y- формула, то(" s) (Y ) - тоже формула, которая утверждает, что при подстановке любого значения переменной S в формулу Y она остается истинной.

5. Порядок старшинства операций в формулах: операторы сравнения (< > = и т.п.), $ , " , Ш ,Щ ,Ъ

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

При использовании кортежных переменных можно ссылаться на отдельный атрибут этой переменной, например: если S = (5, Иванов, 500, 3) - это кортеж отношения СОТРУДНИКИ (номер, имя, оклад, отдел), то S[3] = 500 - это значение третьего атрибута данного кортежа (оклад). На практике в языках, основанных на реляционном исчислении, часто вместо номера атрибута используют его имя, например, вместоS[3] пишут S.Оклад, что более наглядно.

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

Если же имя переменной Х использовано сразу после квантора $ Х или " Х, то она считается связаннойпеременной, которая не видна за пределами формулы, описанной в кванторе. При вычислении значения такой формулы используется не одно значение связанной переменной, а вся ее область определения.Например, пусть Х и Y - две кортежные переменные, определенные на отношении СОТРУДНИКИ. Тогда, формула

$ Y (Х.Оклад > Y.Оклад)

для текущего значения Х истинна в том и только в том случае, если во всем отношении СОТРУДНИКИ найдется кортеж Y такой, что значение его атрибута Оклад удовлетворяет заданному условию сравнения.

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

1. Х.А где Х- имя свободной переменной, а А - имя атрибута отношения

2. Х, то есть имена всех атрибутов отношения

3. N = X.A, где N - новое имя атрибута результирующего отношения (когда используются несколько переменных с одинаковой областью определения)

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

$ EXISTS Ш NOT
" FORALL Щ AND
| WHERE Ъ OR

Таким образом, аналитическое выражениереляционного исчисления кортежей можно записать в виде:

ЦелевойСписок WHERE Формула.

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

8.3. Реляционное исчисление доменов

В этом исчислении переменные являются доменами. Например, в базе данных СОТРУДНИКИ-ОТДЕЛЫ можно говорить о доменных переменных ИМЯ (значения - допустимые имена) или НОМЕР (значения - допустимые номера сотрудников). Основным отличием исчисления доменов от исчисления кортежей является наличие дополнительного набора предикатов, позволяющих выражать так называемые условия членства.

Если R - это отношение с атрибутами a1, a2, ..., an, то условие членства имеет вид

R (ai1: vi1, ai2: vi2,..., aim: vim) (m <= n), где vij- это либо константа, либо имя доменной переменной. Условие членства истинно в том и только в том случае, если в отношении Rсуществует кортеж, содержащий указанные значения указанных атрибутов.

Во всем остальном формулы и выражения этих двух видов реляционного исчисления похожи. Реляционное исчисление доменов является основой для большинства языков запросов, основанных на использовании форм, в частности, для популярного табличного языка запросов к БД Query-by-Example ("запрос по образцу").

Лекция 9. Язык SQL. Часть 1.

Общие сведения.

Структура SQL.

Типы данных в SQL.

Агрегатные Функции.

9.1. SQL

(структурированный язык запроса)

Появился после того, как Кодд опубликовал материал о реляционной алгебре. Разработан в фирме IBM и впервые появился в первом варианте РБД СУБД SYSTEM-R. Потом использовался в других СУБД и постепенно стал неписанным стандартом в разработке РБД. Но в качестве стандарта он был утвержден лишь в 1989г. В конце92-го года появляется новый стандарт SQL-2, который поддерживает все средства SQL-89 и, наконец, в 99г. появился SQL-3.

В нём появился новый раздел, который вводит стандарты на новые конструкции: события, и триггеры. Не содержит тригонометрические функции: операторы sin, cos и.т.д. Содержит набор стандартных операторов доступа к данным, хранящимся в базе данных. Операторы языка SQL могут встраиваться в обычные языки программирования. Язык SQL является интерпретатором.

9.2. Стуктура SQL

Язык SQL разбит на 6 подъязыков:

9.2.1. Язык определения данных (DDL)

Операторы этого языка предназначены для определения структуры данных:

CREATE TABLE - создать новое отношение (таблицу).

DROP TABLE - удалить таблицу из БД.

ALTER TABLE - изменяет структуру существующей таблицы или изменяет ограничения целостности таблицы.

CREATE VIEW - создание виртуальной таблицы, в которую при выполнении запроса будут вводится данные.

DROP VIEW – удаляет виртуальную таблицу.

ALTER VIEW – изменяет структуру виртуальной таблицы.

CREATE INDEX – создает индекс.

DROP INDEX – удаляет индекс.

9.2.2. Язык манипулирования данными (DML)

Содержит 3 оператора:

DELETE – удаляет один или несколько кортежей.

INSERT – вставляет кортеж в отношение.

UPDATE – обновляет значение одного или несколько атрибутов в отношении.

9.2.3. Язык запросов (DQL)

Он состоит всего из одного типа предложений SELECT.

9.2.4. Средства управления транзакциями

Транзакция - последовательность операций, которые переводят БД из одного непротиворечивого состояния в другое.

В нём используются три предложения:

COMMIT – завершает комплексную взаимосвязанную обработку информации, объединенную в транзакцию и фиксирует новое непротиворечивое состояние БД.

ROLLBACK – противоположен по значению. Это оператор отката транзакции.

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

9.2.5. Средства администрирования данных

ALTERDATABASE – осуществляет изменение набора основных объектов в БД и ограничений, касающихся базы в целом.

ALTERDBAREA – изменяет ранее созданную область хранения.

ALTERPASSWORD – изменяет пароль для всей БД.

CREATEDATABASE – создает новую БД с новыми параметрами.

CREATEDBAREA – позволяет создать новую область хранения данных и сделать её доступной для размещения информации.

DROPDBAREA – позволяет удалить существующую область хранения БД, если в ней в настоящий момент не располагаются активные данные.

GRANT – администратор предоставляет права доступа на выполнение операций над некоторыми объектами БД.

REVOKE – администратор лишает прав доступа.

9.2.6. Программный SQL

DECLARE – определяет курсор.

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

Имя (набор символов)

Запрос

Представление

OPEN – открывает курсор.

Занесение в виртуальный набор данных, которые соответствуют описанию курсора и соответствуют текущему состоянию БД.

CLOSE – закрывает курсор.

9.3. Типы данных в SQL

сhar (n) - строка из n символов.

NUMERIC (m, n) - числа, с фиксированным положением десятичной точки.

m - общее количество знаков.

n - количество знаков после точки.

INTEGER - целое число длиной 4 байта.

SМALLINT - целые числа длиной 2 байта.

FLOAT (n) - числа с плавающей точкой, n-размер числа в байтах.

BIT (n) - двоичное число длиной n разрядов.

DATE - календарная дата.

TIMESTAMP - дата и время.

INTERVAL - временной интервал.

MEMO - позволяет заносить большие объемы текстовой информации.

MONEY -может иметь только сотые доли.

9.4. Агрегатные функции

Позволяют выполнить вычисления обобщенных групповых значений. Таких функций в SQL пять:

1) COUNT - выдаёт количество непустых значений или строку, которую выдал запрос.

2) SUM - применяется только к числовым атрибутам и выдаёт сумму всех выбранных значений данного поля.

3) AVG - вычисляет среднеарифметические значения данного поля.

4) MIN - вычисляет минимальное значение указанного поля.

5) MAX - вычисляет максимальное значение указанного поля.

Лекция 10. Язык SQL. Часть 2.

Оператор SELECT.



Просмотров 1496

Эта страница нарушает авторские права




allrefrs.su - 2025 год. Все права принадлежат их авторам!