Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
nwpi233.pdf
Скачиваний:
90
Добавлен:
13.08.2013
Размер:
1.75 Mб
Скачать

CREATE

TABLE

[dbo].[Ведомость_оплаты ]

(Ид_Сотр

CHAR

(5)

NOT NULL,

Ид_Отд

CHAR

(4)

NOT NULL,

Период

VARCHAR (8)

NOT NULL,

Сумма

DECIMAL

(8,2)

NOT NULL,

PRIMARY KEY (Ид_Сотр, Ид_Отд, Период));

Рис. 1.2. CREATE TABLE для таблицы Ведомость_оплаты

На рис. 1.2 указано имя создаваемой таблицы (dbo.Ведомость_оплаты) и список ее столбцов с указанием типов данных (пункт 2.2), используемых в столбцах, при этом для каждого столбца указано правило (NOT NULL – пункт 3.1.2), требующее обязательное означивание элементов каждого столбца. Для таблицы определен первичный ключ (PRIMARY KEY ) на атрибутах (Ид_Сотр, Ид_Отд, Период), назначение которого на данном этапе следует понимать как средство, позволяющее уникально отличать одну строку таблицы от другой. На систему (СУБД) возложено автоматическое поддержание целостности данных в базе, которое в данном примере выражается в том, что каждый элемент таблицы должен быть означен и в ней не может быть двух строк, относящихся к одному и тому же сотруднику за определенный период.

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

SQL.

Примечание. Стандарт SQL определяется ANSI (Американским Национальным Институтом Стандартов) и в данное время также принимается ISO (Международной организацией по стандартизации). Однако большинство коммерческих СУБД расширяют SQL без уведомления ANSI, добавляя разные другие особенности в этот язык, которые, как они считают, будут продуктивны. Иногда они несколько нарушают стандарт языка, хотя хорошие идеи имеют тенденцию развиваться и вскоре становиться стандартами "рынка" сами по себе в силу полезности своих качеств.

Например, грамматические и синтаксические правила описания схемы базы данных на языке определения данных (DDL языка Transact-SQL), в СУБД SQL SERVER

7.0[25] приведены в приложении.

1.2.Алгебра отношений

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

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

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

Как известно, алгебра есть множество вида

 

 

А: < H, S >

, где

H

-

носитель (в данном случае - множество отношений);

S

-

сигнатура (в данном случае - множество операций над отношениями).

Все множество S операций реляционной алгебры разбиты на два подмножества:

Стандартные теоретико-множественные операции:

- объединение

U

Rrez=R1 U R2,

- пересечение

Rrez=R1 R2,

- разность

\

Rrez=R1 \ R2,

- декартово произведение

Rrez= R1 × R2.

Специальные операции:

 

- проекция

Rrez (А)

= R[A],

- ограничение

Rrez

= R1[булевское выражение],

- соединение

Rrez

= R1[булевское выражение]R2,

- деление

Rrez

= R1 ÷ R2.

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

1.2.1. Теоретико-множественные операции

Рассмотрим более подробно каждую из операций.

Операции объединения, пересечения и разности двух отношений, представленных схемами отношений:

R1 (A1, A2,

..., An)

и

R2 (B1, B2, ..., Bn),

возможны только

в том случае, когда отношения R1 и R2 являются объединимыми. Это

означает, что степени объединяемых отношений идентичны, а соответственные атрибуты определены на одних и тех же доменах. Например, атрибут А1 из R1 и B1 из R2 определены на домене D1.

В результате операции объединения получающееся отношение имеет ту же

степень, что и исходные отношения.

 

Rrez (C1, ..., Cn) = R1 (A1, ..., An) U

R2 (B1, ..., Bn),

а мощность Mrez лежит в пределах: Max (M1, M2) <= Mrez <= M1+M2.

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

В результате операции пересечения:

Rrez (C1, …, Cn) = R1 (A1, ..., An) ∩ R2 (B1, ..., Bn),

степень отношения также сохраняется, а мощность лежит в пределах: 0 <= Мrez <= Min (M1, M2).

При операции взятия разности двух отношений:

Rrez (C1, …, Cn) = R1 (A1, ..., An) \ R2 (B1, ..., Bn),

степень сохраняется, а мощность лежит в пределах: 0 <= Mrez <= M1.

Пример с указанными операциями представлен на рис. 1.3. Для имен атрибутов приняты следующие сокращения: ШД – шифр детали, ШМ – шифр материала, ЕИ – единица измерения, НР – норма расхода, НМ – наименование материала, ШМ" шифр материала на складе (рис. 1.4).

Исходные отношения:

 

 

 

 

 

 

R1 (ШД, ШМ, ЕИ, НР)

R2 (ШД, ШМ, ЕИ, НР)

д1 м2

1

15

д2

м5

3

3

д2 м5

3

3

д2

м3

2

15

д2

м9

3

5

 

 

 

 

д3

м2

1

10

 

 

 

 

Рис. 1.3.Теоретико-множественные операции над отношениями

Примечание. В SQL (см. пункт 5.2) UNION обозначает операцию объединения, INTERSECT - операцию пересечения, а MINUS - операцию взятия разности.

Последней из теоретико-множественных операций является операция декартового произведения отношений:

Rrez (A1, ..., An, B1, ..., Bm) = R1 (A1, ..., An) × R2 (B1, ..., Bm).

При этой операции степень результирующего отношения есть сумма степеней исходных, а мощность

Mrez=М1 * М2, где * - символ арифметического умножения.

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

Исходные отношения:

 

 

 

 

R1(ШД, ШМ, ЕИ, НР)

R3(ШМ", НМ)

д1

м2

1

15

м2

ст-5

д2

м5

3

3

м9

ст-7

д2

м9

3

5

 

 

д3

м2

1

10

 

 

Соседние файлы в предмете Информационные технологии