Введение в дисциплину «Безопасность систем баз данных». Теоретические основы построения реляционных баз данных. Верификация баз данных и проведение аудита в СБД. Распределенные базы данных, страница 18

Рисунок 2.18 – Пример расширенной проекции отношения

2.3.6. Сортировка

Сортировка отношения – это упорядочение его кортежей по значению простого или составного атрибута. В современном варианте реляционной алгебры имеется оператор сортировки по возрастанию, который обозначается как . Здесь {xi} – множество атрибутов. На практике атрибуты, как и в операторе проекции, перечисляются через запятую, в явном виде: например, . Сортировка производится в следующем порядке: сначала кортежи сортируются по значению атрибута x1; затем кортежи, имеющие одинаковые значения x1, сортируются по значению атрибута x3 и, наконец, кортежи с совпадающими значениями x1 и x3 сортируются по значению x7.

2.3.7. Агрегирование

Словом «агрегирование» обозначается набор операций, применяемых к атрибутам кортежей с целью получения некоторой обобщенной, т. е. агрегированной информации. Типичный набор операций агрегирования включает суммирование значений числовых атрибутов и подсчет среднего значения, нахождение минимального и максимального значения, а также подсчет количества значений (без учета уникальности). Для выполнения этих операций используются агрегатные функции – соответственно, SUM(), AVG(), MIN(), MAX(), COUNT(). Аргументом каждой функции является атрибут отношения. Для функции COUNT() дополнительно определена запись COUNT(*) – подсчет количества кортежей в отношении.

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

chairs

id_chair

abbreviation

id_faculty

1

АиТ

1

2

ИнИБ

2

3

УЭР

2

4

ИВС

1

а)

COUNT (id_chair)

4

б)

Рисунок 2.19 – Пример использования агрегатной функции COUNT()

2.3.8. Группирование

Группирование – это операция, применяемая к простому или составному атрибуту с целью выявления уникальных значений этого атрибута, или, иначе говоря, групп значений. Рассмотрим атрибут post отношения teachers (рис. 2.20 (а)). Можно выделить три группы значений этого атрибута: «профессор», «старший преподаватель» и «ассистент». Операция группирования по атрибуту post формирует новое отношение, включающее только атрибут post; каждое значение соответствует одной и только одной группе значений атрибута в исходном отношении (рис. 2.20 (б)).

Запись оператора группирования имеет следующий вид: , где x – простой или составной атрибут отношения R.

teachers

surname

firstname

patronymic

degree

post

Зиновьев

Денис

Алексеевич

д. т. н.

профессор

Борисов

Евгений

Васильевич

к. т. н.

старший преподаватель

Иванов

Михаил

Яковлевич

д. ф-м. н.

профессор

Елисеев

Валерий

Германович

NULL

ассистент

а)

post

профессор

старший преподаватель

ассистент

б)