Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Базы данных проектирование и реализация. Учебное пособие
.pdf
надо понимать, что в строгой реляционной модели отношение не является таблицей, кортеж – это не строка, а атрибут – это не столбец. Отношение – понятие абстрактное, а таблица – лишь его визуальное представление.
Термины «таблица», «строка», «столбец» могут использоваться
только в неформальном контексте, при условии полного понимания, что
эти термины являются
приближением и не дают точного представления
о сути обозначаемых понятий.
4.1.1. ДВЕНАДЦАТЬ ПРАВИЛ КОДДА
Кодд [34], определив реляционную модель данных, сформулировал
правила, позволяющие сказать, поддерживает ли СУБД реляционную
модель, или в какой степени она является реляционной. Эти правила известны как 12 правил Кодда (на самом деле их 13, поскольку счет начи-
нается с 0), и им должна удовлетворять каждая система управления реляционными базами данных, хотя это
не всегда соблюдается на прак-
тике.
Правило 0: Основное (Foundation Rule)
Чтобы быть реляционной системой управления базами данных
(СУБД), система должна использовать исключительно свои реляционные возможности для управления базой данных.
Правило 1: Информационное (The Information Rule)
Данные, хранящиеся в базе данных, будь то пользовательские данные или метаданные, должны быть значением некоторой ячейки
таб-
лицы. Все в базе данных должно храниться в формате таблицы.
Правило 2: Гарантированный доступ к данным (Guaranteed
Access Rule)
В реляционной базе данных каждое отдельное (атомарное) значение
данных должно быть логически доступно с помощью комбинации
имени таблицы, значения первичного ключа и имени столбца.
Правило 3: Систематическая поддержка отсутствующих значений (Systematic Treatment of Null Values)
Неизвестные, или
отсутствующие, значения NULL, отличные от лю-
бого известного значения (NULL можно интерпретировать как одно из
следующих: данные отсутствуют, данные неизвестны или данные неприменимы), должны поддерживаться для всех типов данных при выполнении любых операций.
31

Правило 4: Доступ к словарю данных в терминах реляционной
модели (Active On-Line Catalog Based on the Relational Model)
Словарь данных
1
должен сохраняться в форме реляционных таблиц,
и СУБД должна поддерживать доступ к нему при помощи стандартных
языковых средств, тех же самых, которые используются для работы
с реляционными таблицами, содержащими пользовательские данные.
Правило 5: Полнота подмножества языка (Comprehensive Data
Sublanguage Rule)
Доступ к базе данных возможен только с использованием языка
с линейным синтаксисом, который поддерживает
определение данных,
манипулирование данными и операции управления транзакциями. Этот
язык можно использовать напрямую или с помощью какого-либо приложения. Если база данных разрешает доступ к данным без помощи
этого языка, то это считается нарушением.
Правило 6: Возможность изменения представлений (View
Updating Rule)
Каждое представление должно поддерживать все операции манипу-
лирования данными, которые
поддерживают реляционные таблицы:
операции выборки, вставки, изменения и удаления данных.
Правило 7: Наличие высокоуровневых операций управления
данными (High-Level Insert, Update, and Delete)
Операции вставки, изменения и удаления данных должны поддерживаться не только по отношению к одной строке реляционной таблицы, но и по отношению к любому множеству строк.
Правило 8: Физическая независимость данных (
Physical Data
Independence)
Данные, хранящиеся в базе данных, не должны зависеть от приложений, обращающихся к базе данных. Любые изменения в физической
структуре базы данных не должны влиять на то, как к данным обращаются внешние приложения.
Правило 9: Логическая независимость данных (Logical Data
Independence)
1
Словарь данных содержит информацию об источниках, форматах и взаи-
мосвязях между данными, их описания, сведения о характере использования и
распределении ответственности. Словарь данных можно рассматривать как
вспомогательную базу данных (метаданных), в которой хранится информация
об основной базе данных.
32

Логические данные в базе данных должны быть независимы от пользовательского представления (приложения). Любое изменение логических данных не должно влиять на использующие их приложения.
Например, если две таблицы объединены или одна разделена на две разные таблицы, это не должно повлиять на пользовательское приложение
или изменить его.
Правило 10: Независимость
контроля целостности (Integrity
Independence)
База данных должна быть независимой от приложения, которое ее
использует. Все его ограничения целостности могут быть независимо
изменены без необходимости каких-либо изменений в приложении.
Это правило делает базу данных независимой от клиентского приложения и его интерфейса.
Правило 11: Независимость от расположения (Distribution
Independence)
База данных может быть
распределенной, может находиться на не-
скольких компьютерах, и это не должно влиять на приложения. Перенос
базы данных на другой компьютер не должен оказывать влияния на приложения.
Правило 12: Согласование языковых уровней (The Nonsubversion
Rule)
Если в системе есть интерфейс, обеспечивающий доступ к низкоуровневым записям, то этот интерфейс не должен иметь возможности
нарушить работу системы и обойти ограничения безопасности и целостности.
4.1.2. ЭЛЕМЕНТЫ РЕЛЯЦИОННОЙ АЛГЕБРЫ
Реляционная алгебра – это язык операций, выполняемых над отношениями – таблицами реляционной базы данных. Операции реляционной алгебры позволяют на основе одного или нескольких отношений
(таблиц) создавать другое отношение (таблицу) без изменения самих исходных отношений. Полученная в результате операции таблица сохраняется как временная структура, создаваемая функциями для работы
с
базами данных в языках программирования.
Определим следующие условные обозначения:
X, Y – отношения-операнды;
33

R – отношение-результат;
Mx, My, Mr – мощности отношений (количество кортежей) X, Y, R;
А, B – подмножества схем отношений.
ТЕОРЕТИКО-МНОЖЕСТВЕННЫЕ ОПЕРАЦИИ
Объединение – тело отношения-результата является объединением
множеств кортежей отношений-операндов.
Символическое обозначение R = X + Y.
Мощность результата удовлетворяет соотношению max(Mx, My) ≤
≤ Mr ≤ Mx + My.
Схемы операндов должны быть одинаковы, схема результата не изменяется.
Вычитание (разность) – тело отношения-результата получено вычитанием (удалением кортежей) отношения Y из отношения X.
Символическое обозначение R = X – Y.
Мощность результата удовлетворяет соотношению 0 ≤ Mr ≤ Mx.
Схемы операндов должны быть одинаковы, схема результата не изменяется.
Пересечение – тело отношения-результата является пересечением
множеств кортежей отношений-операндов.
Символическое обозначение R = X
Y = X – (X – Y).
Мощность результата удовлетворяет соотношению 0 ≤ Mr ≤
≤ min(Mx, My).
Схемы операндов должны быть одинаковы, схема результата не изменяется.
Декартово произведение – тело отношения-результата является декартовым произведением множеств кортежей отношений-операндов.
Символическое обозначение R = X * Y.
Мощность результата удовлетворяет соотношению Mr = Mx * My.
Cхема результата является конкатенацией (сцеплением) схем
опе-
рандов.
ОПЕРАЦИИ, УЧИТЫВАЮЩИЕ СТРУКТУРУ ОТНОШЕНИЙ
Проекция (ограничение) – тело отношения-результата включает
кортежи, каждый из которых составлен из значений A соответствующего кортежа Х.
34

Символическое обозначение R = X(A), где A
M
R
R
R
схема X (схема от-
ношения-результата A является подмножеством схемы отношения-операнда).
Мощность результата удовлетворяет соотношению
rMx
из-за
возможного удаления кортежей-дубликатов.
Операция проекции обладает свойством собственности. Это означает, что две последовательные проекции могут быть заменены одной
проекцией:
1 ( ), 1( ) ( ), если .
XA R R B R XB B A
Выборка (селекция) – тело отношения-результата состоит из кор-
тежей, которые удовлетворяют заданному предикату (условию выборки), т. е. является подмножеством тела отношения-операнда.
Символическое обозначение
R = X(A Θ C),
где Θ – операторы сравнения, например
{>, ≤, <, ≥, =, ≠}и другие, в со-
ответствии с типами атрибутов; C – множество констант, сравнимых
с Θ. Это означает, что для любых
смысл,
aAiС C
,,
ij ij i i
,,.
, ij
выражение
aC
,,ij i ij
имеет
Мощность результата удовлетворяет соотношению 0 ≤ Mr ≤ Mx.
Схема результата не изменяется.
Последовательное применение операции селекции и проекции в таком порядке )1(1(,)
BA
. В принятых условных символах совместное применение селек-
ции и проекции можно записать .)/(
XAR RB C возможно при условии, что
XB C A
Соединение – выборка над декартовым произведением X и Y по про-
извольному предикату (условию выборки) Θ.
Символическое обозначение
R = X(AΘ B)Y, где A
схема Х; Всхе-
ма Y, A и B сравнимы по Θ.
Естественное соединение – соединение по условию равенства,
т. е. Θ всегда
=. Эта операция обычно выполняется, чтобы восстановить
исходное отношение, подвергнутое декомпозиции. Дубликаты атрибутов удаляются из результата.
Мощность результата совпадает с мощностью исходного отношения.
35

Деление – тело отношения-результата является минимальным мно-
жеством кортежей, таких, что декартово произведение этого множества
с отношением-делителем принадлежит отношению-делимому.
Символическое обозначение
Обозначим A = схема X, тогда R(А – B)*Y(B)
R = X(B)Y, где B
схема X и Bсхема Y.
X. Используя введен-
ные обозначения, алгоритм вычисления можно представить следующим
образом:
1.
R1 = X(A – B) * Y(B) – X(A).
2.
R = X(A – B) – R1(A – B).
4.1.3. РЕЛЯЦИОННОЕ ИСЧИСЛЕНИЕ
Реляционная алгебра и реляционное исчисление представляют собой два альтернативных подхода. Так же как и выражения реляционной
алгебры, формулы реляционного исчисления определяются над отношениями реляционных баз данных, и результатом вычисления также является отношение. Эти механизмы манипулирования данными различаются уровнем процедурности:
запрос, представленный на языке реляционной алгебры, может
быть вычислен на основе вычисления элементарных алгебраических
операций (соединение, объединение, проекция и т. д.) с учетом их старшинства и возможных скобок, т. е. язык реляционной алгебры можно
считать процедурным;
формула реляционного исчисления только определяет условия,
которым должны удовлетворять кортежи результирующего отношения,
в терминах существующих отношений. Поэтому языки реляционного
исчисления являются более непроцедурными или декларативными.
В реляционном исчислении определяется проблема, а в реляционной алгебре задается процедура решения этой проблемы. Например,
рассмотрим запрос: «Определить, какие клиенты купили сорт Роза Сибирская
» (см. приложение Б).
Алгебраическая версия этого запроса может быть составлена примерно так:
1) выполнить соединение отношений Клиент, Заказ, Сорт и Цветы
по атрибутам:
Клиент.ID, IDКлиента, IDСорта и IDЦветка;
2) с помощью операции выборки выделить из результатов этого со-
единения кортежи, которые относятся к цветку Роза и сорту Сибирская;
36

3) сформировать проекцию результата выборки по атрибуту Кли-
ент.Фамилия.
Этот же запрос в терминах реляционного исчисления формулируется приблизительно следующим образом.
Получить атрибут Клиент.Фамилия для таких цветов и сортов, для
которых в отношении Заказ существует запись о покупке цветка сорта
Сибирская Роза.
Отмеченные различия между реляционной алгеброй и реляционным
исчислениям не принципиальны. На самом деле реляционная алгебра
и реляционное исчисление логически эквивалентны. Каждому выражению в алгебре соответствует эквивалентное выражение в исчислении,
и точно так же каждому выражению в исчислении соответствует эквивалентное выражение в алгебре.
Это означает, что между ними существует взаимно однозначное соответствие, а различия связаны
лишь с разными стилями выражения: исчисление ближе к естественному языку, а алгебра – к языку программирования.
4.2. ПРЕОБРАЗОВАНИЕ КОНЦЕПТУАЛЬНОЙ МОДЕЛИ
В СИСТЕМУ ТАБЛИЦ
Так как концептуальная модель (ER-диаграммы) и логическая (реляционная) модель описывают одну и ту же предметную область, то
между ними существует некоторое соответствие:
каждая таблица, как правило, соответствует сущности;
строки (записи) таблицы представляют экземпляры сущности
(объекты);
столбцы соответствуют атрибутам, а домены – множеству допу-
стимых значений для столбцов.
Преобразование ER-диаграмм в систему таблиц выполняется по следующим правилам, а иллюстрация этого преобразования приведена на
рис. 4.2, а – 4.2, е:
обязательная связь типа 1:1 преобразуется в одну таблицу, струк-
тура которой определяется атрибутами обеих сущностей (рис. 4.2, а);
возможная связь типа 1:1 представляется двумя таблицами (по од-
ной для каждой из сущностей), имеющими общий атрибут, однозначно
идентифицирующий экземпляр сущности, для которой участие в связи
не обязательно. Как правило, этот атрибут вводится искусственно
и называется
кодом (рис. 4.2, б);
37

О
О
Имя
сущности 1
Имя
сущности 2
Связь 1:1
Обязательная
Атрибуты
сущности 1
Как правило, необходимо добавить
искусственный атрибут (код),
используемый в качестве
первичного ключа
Атрибуты
сущности 2
а
Н
О
Имя
сущности 1
Имя
сущности 2
Связь 1:1
Возможная
Атрибуты
сущности 1
Атрибуты
сущности 2
Код
сущности 1
Первичный ключ
Код
сущности 1
Внешний ключ
б
Н
Н
Имя
сущности 1
Имя
сущности 2
Связь 1:1
Не обязательная
Атрибуты
сущности 1
Код
сущности 1
Атрибуты
сущности 2
Код
сущности 1
Код
сущности 2
Код
сущности 2
в
Рис. 4.2. Преобразование ER-диаграмм в систему отношений (таблиц)
(см. также с. 39)
38

1) О Н 2)
О О
О
Н
независимо от обязательности
Имя
сущности 1
Имя
сущности 2
Связь 1:М
Обязательная (1)
Возможная (2)
Имя
сущности 1
Имя
сущности 2
Связь 1:М
Возможная
Не обязательная
Имя
сущности 1
Имя
сущности 2
Связь М:М
Атрибуты
сущности 1
Атрибуты
сущности 2
г
Атрибуты
сущности 1
Код
сущности 1
Атрибуты
сущности 2
д
Атрибуты
сущности 1
Код
сущности 1
Атрибуты
сущности 2
е
Рис. 4.2. Окончание
Код
сущности 1
Первичный ключ
Код
сущности 1
Внешний ключ
Код
сущности 1
Код
сущности 2
Код
сущности 2
Код
сущности 1
Код
сущности 2
Код
сущности 2
39

не обязательная связь типа 1 : 1 представляется тремя таблицами,
по одной для каждой сущности и третья для представления связи. Эта
таблица содержит коды связанных экземпляров (рис. 4.2, в);
обязательная связь типа 1 : М представляется двумя таблицами
с общим атрибутом, идентифицирующим экземпляры сущности, имеющей характеристику значности 1 (рис. 4.2, г);
возможная связь типа 1 : М представляется двумя таблицами
с общим атрибутом, идентифицирующим экземпляры сущности, имеющей характеристику значности 1 и необязательность участия в связи
(рис. 4.2, г), или тремя таблицами, если экземпляры сущности, имеющей характеристику значности 1, обязательны для участия в связи
(рис. 4.2, д);
не обязательная связь типа 1 : М преобразуется в три таблицы
(рис. 4.2, д);
связи типа М : М независимо от обязательности представляются
всегда тремя таблицами (рис. 4.2, е).
4.3. ФУНКЦИОНАЛЬНЫЕ ЗАВИСИМОСТИ
При возможных ошибках в построении ER-диаграмм (неверно выделены сущности, неправильно классифицированы связи) выполнение
предыдущих пунктов не гарантирует эффективности полученной структуры данных в смысле отсутствия избыточности и связанных с ней побочных эффектов (аномалий) при обновлении, удалении и добавлении
новых записей в таблицы. Аномалией называется такая ситуация в таблице
БД, которая приводит к противоречию в БД либо существенно
усложняет обработку БД.
Аномалии обновления проявляются в том, что изменение значения
в одной записи может повлечь соответствующее изменение во многих
записях таблицы.
Аномалии удаления – при удалении какой-либо записи из таблицы
исчезают данные, не связанные с удаляемой записью.
Аномалии добавления возникают, когда нельзя добавить запись
в таблицу, если некоторые поля не определены.
Примеры
Рассмотрим фрагмент предметной области.
Некая организация выполняет определенные работы (темы).
Каждая тема имеет руководителя из числа сотрудников организации.
40
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
