Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
[конспект] Технологии баз данных [v0.8.1].pdf
Скачиваний:
79
Добавлен:
21.03.2016
Размер:
1.3 Mб
Скачать

3.Коннолли Т., Бегг К. Введение в базы данных / пер. с англ. Р. Г. Имамутдинова, К. А. Птицына // Базы данных: проектирование, реализация и сопровождение (глава 1) / под ред. К. А. Птицына. — 3-е изд. — М. : Издательский дом „Вильямс“, 2003.

4.Кузнецов С. Д. Понятие модели данных. Обзор разновидностей моделей данных // Базы данных.

Вводный курс (лекция 2). — 2008. — URL: http://citforum.ru/database/advanced_intro/

6.shtml.

§2. Реляционная модель данных

Реляционные системы базируются на формальных основах — теории, которая называется реляционной моделью данных. В такой системе выполняются как минимум три условия:

1.Структурный аспект: данные в базе воспринимаются пользователем как таблицы.

2.Аспект целостности: «таблицы» отвечают определенным условиям целостности.

3.Аспект обработки: в распоряжении пользователя имеются операторы манипулирования «таблицами», которые генерируют новые «таблицы» на основании уже имеющихся.

2.1. Структуры данных. Фундаментальные свойства отношений

Определение 1. Типом данных называется множество, состоящее из трех компонентов:

1.Множество значений данного типа,

2.Набор операций над элементами множества значений (т. е. над значениями данного типа),

3.Способ внешнего представления значений типа (литералов).

Такое определение ничем не отличается от понятия типа данных в языках программирования. Подобно терминологии языков программирования можно определить скалярные и нескалярные типы данных.

Определение 2. Тип данных называется нескалярным, если пользователи определяют его значения как множество видимых, непосредственно доступных компонентов. Иначе тип данных называется

скалярным (атомарным, инкапсулированным).

Определение 3. Доменом для типа данных T (называемого базовым типом для домена) называется совокупность следующих компонентов:

1.Имя домена, являющееся уникальным среди имен всех доменов соответствующей базы данных.

2.Булева (логическая) функция, называемая ограничением домена, заданная на множестве значений типа данных T,

3.Множество тех и только тех значений типа T, для которых логическая функция принимает значение «истина».

По сути домен является своего рода допустимым потенциальным, ограниченным подмножеством значений данного типа. Под обозначением v P D, где D — заданный домен, будем понимать, что v является допустимым значением домена D. Нередко домен и тип данных используют как синонимы, т. е. в этом случае ограничение домена тождественно истинная функция.

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

В теории реляционная модель относительно типов доменов должна удовлетворять требованиям:

Использовать только скалярные типы1,

1 На самом деле, для реляционной модели данных тип используемых данных не важен. Требование, чтобы тип данных был скалярным (простым), нужно понимать так, что в реляционных операциях не должна учитываться внутренняя структура данных.

9

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

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

Определение 4. Отношением (relation) R называется упорядоченная пара HR; BR , где

HR заголовок (или схема) отношения R, являющийся множеством упорядоченных пар видаA; D , называемых атрибутами (attribute), где A — имя атрибута, D — некоторый домен

базы данных.

BR тело отношения, являющееся множеством кортежей (tuple) Ti, каждый из которых

представляет из себя набор троек вида A; D; v по одной для каждого атрибута заголовка, где A — имя соответствующего атрибута из заголовка, D — известный домен атрибута с именем A, v P D — значение из домена.

Замечание. Отношение R можно определить еще как множество всевозможных пар HR; BR , отличающихся только телами BR (перебираются всевозможные варианты значений атрибутов в кортежах). В этом случае вводят понятие значения VR1 отношения R, чтобы выделить какую-нибудь одну пару

HR1 ; BR1 P R.

Замечание. Стоит учитывать, что множество атрибутов и множество кортежей могут быть пустыми. Существует ровно два отношения с пустым множеством атрибутов: одно содержит ровно один кортеж (TABLE_DEE), а второе — ни одного (TABLE_DUM)1. Они играют роль нейтрального элемента в реляционной алгебре или роль «истины» и «лжи» соответственно.

По сути каждое отношение можно представить в виде таблицы, где в качестве столбцов выступают атрибуты, а в качестве строк — кортежи.

Определение 5. Количество атрибутов в заголовке отношения называется степенью (или арностью) этого отношения. А количество кортежей в теле отношения называется кардинальностью отношения.

Теперь можно определить понятие реляционной базы данных.

Определение 6. Реляционной базой данных называется совокупность отношений. Схемой реляци-

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

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

1.Каждый кортеж содержит ровно одно (неделимое) значение соответствующего типа для каждого из своих атрибутов — свойство атомарности.

2.Элементы кортежей не упорядочены.

3.Кортежи в теле отношения не упорядочены2.

4.Атрибуты в заголовках отношений не упорядочены.

5.В теле любого отношения все кортежи различаются.

2.2. Целостность данных. Реляционные ключи

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

1Названия DEE и DUM выдуманы спонтанно (можно перевести как «чертовка» и «пустышка» соответственно)

ине имеют глубокого смысла.

2 Но на практике кортежи могут упорядочивать в целях повышения скорости доступа к данным.

10

Определение 7. Ограничением целостности называется логическое выражение, связанное с некоторой базой данных, принимающее значение «истина» (т. е. является истинным высказыванием о предметной области).

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

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

Ограничения целостности можно разделить на статические и динамические:

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

А динамическое ограничение определяют возможность перехода предметной области из одного состояния в другое.

Некоторые виды статических ограничений:

Ограничение типа — определяет множество значений, из которых должен состоять тип, т. е. по сути задаёт домен.

Ограничение атрибута — ограничение на значения, которые разрешено принимать указанному атрибуту.

Ограничение отношения — ограничения на значения атрибутов данного отношения в совокупности.

Ограничение базы данных — ограничение на значения атрибутов одного или нескольких отношений базы данных в совокупности.

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

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

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

Определение 9. Потенциальным ключом (candidate key) отношения называется его суперключ, который не содержит (строгого) подмножества, являющегося суперключом данного отношения. Если потенциальный ключ состоит из одного атрибута, то он называется простым, иначе — составным.

Таким образом, потенциальный ключ K отношения R обладает двумя свойствами:

Уникальность — однозначно идентифицирует кортеж отношения R,

Неприводимость — никакое допустимое подмножество ключа K не обладает свойством уникальности.

Как следствие потенциальные ключи предоставляют механизм адресации кортежей.

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

11

Определение 10. Перввичным ключом (primary key) отношения называется потенциальный ключ этого отношения, выбранный для однозначной идентификации кортежей внутри этого отношения. А остальные потенциальные ключи называются альтернативными.

Определение 11. Внешним ключом (foreign key) отношения R2 называется подмножество его атрибутов Fk, для которого

1)существует отношение R1 той же базы данных с потенциальный ключом Ck таким, что Fk и Ck совпадают с точностью до переименования атрибутов1,

2)в любой момент времени каждое значение Fk текущего варианта отношения R2 идентично некоторому значению Ck текущего состояния отношения R1 2.

Ck

Указанный внешний ключ можно отобразить с помощью ссылочной диаграммы: R2 ÝÑ R1.

Замечание. Выделим несколько особенностей внешних ключей:

Каждое значение Fk должно присутствовать в качестве значения Ck, но обратное не требуется. Это позволяет строить связи не только вида «один к одному», но и «один ко многим».

Любое значение Fk представляет собой ссылку на кортеж, содержащий соответствующее значение Ck.

Отношения R1 и R2 в определении внешнего ключа могут совпадать.

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

Определение 12. Отношение, которое содержит внешний ключ, называется ссылающимся, а отношение, на которое ссылается внешний ключ, называется ссылочным.

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

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

Для удаления некоторых кортежей из ссылочного отношения, на которые есть ссылки из ссылающегося отношения, есть несколько подходов:

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

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

3.Каскадное удаление: из ссылающегося отношения удаляются все кортежи, ссылающиеся на подлежащие удалению ссылочные кортежи, после чего удаляются необходимые кортежи.

Ключи позволяют вводить новые ограничения целостности вида:

Целостность сущностей

В каждом отношении ни один первичный ключ не может содержать отсутствующих значений

(NULL).

Ссылочная целостность

База данных не должна содержать каких-либо несогласованных значений внешнего ключа, т. е. если значение B ссылается на A, то A должно существовать.

1 То есть переименованием некоторого подмножества атрибутов Fk можно получить такое подмножество атрибутов Fk1 , что Fk’ и Ck совпадают как по именами, так и по типам атрибутов.

2 Другими словами, в каждый момент времени множество всех текущих значений Fk в R2 является нестрогим под-

множеством множества текущих значений Ck в R1.

12