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

Понятие типа данных для СУБД практически тождественно одноименному понятию в программировании. Существенная разница заключается в том, что в базах данных значения могут быть неопределенными. Неопределенность эта не тождественна равенству нулю или «пустому» указателю. Слова «неопределенное значение» должны пониматься буквально: значение на данный момент неизвестно или не может быть установлено совсем. Неопределенное значение практически во всех СУБД обозначается специальным ключевым словом NULL; в примере на рис. 2.1 оно присутствует на пересечении второй строки и третьего столбца таблицы. Очевидно, что дата рождения Борисова С.В. по каким-то причинам оказалась неизвестна.

Типы данных в СУБД можно классифицировать следующим образом:

·  простые типы (символы, целые и вещественные числа, битовые строки);

·  специализированные числовые типы (например, деньги);

·  «темпоральные» типы (дата, время).

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

Некоторые СУБД поддерживают механизм доменов. Доменом в базах данных называется множество допустимых значений указанного типа. При создании столбцов они могут указываться вместе с типом данных дополнительно. Однако в некоторых СУБД (к таким относится и Microsoft SQL Server) домены не используются, т. к. для определения области допустимых значений вполне подходит ограничение целостности CHECK, о чем будет сказано несколько позже.

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

Набор именованных схем отношения образует схему БД.

2.1.1. Фундаментальные свойства отношений

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

1. Отсутствие обязательной упорядоченности кортежей.

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

2. Отсутствие упорядоченности атрибутов.

Обращение к атрибуту отношения осуществляется с использованием имени, а не порядкового номера. Это позволяет менять структуру отношения: добавлять новые атрибуты, удалять существующие, без потерь в удобстве манипулирования данными.

3. Каждое поле реляционной таблицы содержит одно и только одно значение.

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

Нереляционная таблица

Реляционная таблица

ФАМИЛИЯ И.О.

УВЛЕЧЕНИЕ

ФАМИЛИЯ И.О.

УВЛЕЧЕНИЕ

Иванов А.В.

Футбол

Иванов А.В.

Футбол

Петров С.Н.

Музыка

Петров С.Н.

Музыка

Компьютеры

Петров С.Н.

Компьютеры

Игра в снежки

Петров С.Н.

Игра в снежки

Сидоров О.О.

Этнография

Сидоров О.О.

Этнография

Рисунок 2.2 – Различие между нереляционной и реляционной формой представления таблиц