Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПиОБД Бочкарев / Базы данных_учебник.doc
Скачиваний:
135
Добавлен:
06.02.2016
Размер:
737.28 Кб
Скачать

2.4. Реляционная модель данных (рмд)

2.4.1. Понятие отношения

Реляционная модель данных была предложена математиком Э.Ф. Коддом (Codd E.F.) в 1970 г. РМД является наиболее широко распространенной моделью данных и единственной из трех основных моделей данных, для которой разработан теоретический базис с использованием теории множеств.

В основе РМД лежит понятие отношения, представляющего собой подмножество декартова произведения доменов. Домен – это множество значений, которое может принимать элемент (например, множество целых чисел, множество комбинаций символов длиной N и т.п.).

Пусть D1, D,…, Dk – произвольные конечные и не обязательно различные множества (домены). Декартово произведение этих множеств определяется следующим образом:

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

Пример. Для доменов D1 = (1,2), D2 = (A,B,C) декартово произведение D будет таким:

D = {(1,A), (1,B), (1,C), (2,A), (2,B), (2,C)}.

Подмножество декартова произведения доменов называется отношением.

Элементы отношения называют кортежами. Элементы кортежа принято называть атрибутами. Количество атрибутов кортежа определяет арность отношения. Отношения арности 1 называют унарными, арности 2 – бинарными, арности n – n-арными.

Отношение содержит информацию о сущностях одного типа. Каждый кортеж отношения соответствует одному экземпляру сущности.

2.4.2. Свойства отношений

Отношение обладает двумя основными свойствами:

1.     в отношении не должно быть одинаковых кортежей, т.к. это множество;

2.     порядок кортежей в отношении несущественен.

Отношение удобно представлять как таблицу, где строка является кортежем, столбец соответствует домену (рис. 2.5, отношение СТУДЕНТЫ).

. . .        . домен 1 . . . . . . . .домен 2. . . . . . . . .. . . . . . .домен 3 (ключ). . . . . . . . .. . . . .домен 4. . . . . . . .домен 5

Группа

ФИО студента

Номер зачётной книжки

Год рождения

Стипендия

С–72

Волкова Елена Павловна

С-12298

1981

566.40

С–91

Белов Сергей Юрьевич

С-12299

1980

400.00

. . .

С–72

Фролов Юрий Вадимович

С-14407

1981

0

Рис.2.5. Пример табличной формы представления отношения

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

Каждый атрибут определён на некотором домене, несколько атрибутов отношения могут быть определены на одном и том же домене (например, номера рабочего и домашнего телефона). Домен задаётся типом данных и ограничениями целостности, например, оклад – это число больше нуля. Значение атрибута может быть не определено в момент внесения записи в БД. Для таких случаев предусмотрено специальное значение – null, которое можно интерпретировать как "неизвестное значение".

Ключ отношения – это атрибут, значения которого идентифицируют кортеж. Таким образом, ключ имеет уникальные в рамках отношения значения. (На рис. 2.5 ключ выделен полужирным шрифтом). Если ключ состоит из нескольких атрибутов, он называется составным. Ключей может быть несколько; основной ключ – первичный, его значения не могут обновляться. Другие ключи называются возможными или потенциальными ключами.

РМД не поддерживает групповые отношения. Для связей между отношениями используются внешние ключи. Внешний ключ – это атрибут подчиненного отношения, который является копией первичного (или уникального) ключа родительского отношения. (Пример – отношение ДЕТИ, связанное с отношением СТУДЕНТЫ по внешнему ключу Номер зачётной книжки, рис. 2.6). Фактически, внешние ключи логически связывают экземпляры сущностей разных типов между собой. Т.о., внешний ключ можно трактовать как ограничение целостности на две таблицы, в соответствии с которым множество значений внешнего ключа является подмножеством значений ключа родительской таблицы. Если связь необязательная, то значение внешнего ключа может быть неопределённым (null).

внешний ключ

Номер зачётной книжки

Имя, отчество ребенка

Дата рождения

С-12298

Антон Павлович

01.12.01

С-12298

Юлия Павловна

01.12.01

С-12299

Ольга Сергеевна

16.04.02

Рис.2.6. Связь отношений "Студенты" и "Дети" по внешнему ключу

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

Все операции над данными в РМД выполняются над отношением и требуют задания имени отношения. Если операция применяется к части отношения, то может потребоваться идентификация кортежа или группы кортежей и задания имен атрибутов. В РМД используются следующие операции над данными:

  • запомнить: внесение информации в БД (требует формирования значений уникального ключа и обязательных атрибутов кортежа);

  • обновить: модификация данных – изменение значений отдельных атрибутов кортежей;

  • извлечь: чтение данных;

  • удалить: физическое или логическое удаление данных (кортежа или группы кортежей).

Структуризация данных в РМД существенно отличается от структуризации данных по версии CODASYL. В таблице 2.1. приведено соответствие этих двух вариантов структуризации.

Таблица 2.1. Сравнение структуризации данных в РМД и по версии CODASYL

Термины версии CODASYL

Термины (и синонимы) РМД

Элемент данных

Атрибут (поле)

Агрегат

¾

Запись (группа)

Кортеж (запись, строка)

Совокупность записей одного типа

Отношение (таблица)

Набор (групповое отношение)

¾

База данных

База данных

2.4.3. Достоинства и недостатки РМД

Широкое распространение РМД объясняется в первую очередь простотой представления и формирования БД, универсальностью и удобством обработки данных, которая осуществляется с помощью декларативного языка запросов SQL (Structured Query Language).

Существуют два стандарта SQL, определённые американским национальным институтом стандартов (ANSI): SQL-89 (SQL1) и SQL-92 (SQL2). В настоящее время в стадии разработки находится новый стандарт – SQL3. Большинство коммерческих систем управления базами данных (СУБД) поддерживают стандарт SQL2, который принят ISO (International Standards Organization) в качестве международного стандарта. (Подробнее об SQL рассказано в [10]).

Моделирование ПО в рамках РМД создаёт некоторые сложности, т.к. в РМД нет специальных средств для отображения различных типов связей. Отсутствие множественных связей, например, "многие ко многим", вызывает увеличение объёма хранимой (дублируемой) информации. Отсутствие возможности указания типов связей (например, "работает" или "имеет"), приводит к тому, что семантика связей в принципе не может быть отражена в РМД и зависит от того, как связь интерпретируется приложениями.

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

В РМД нет понятий режим включения и класс членства, поэтому набор средств описания ограничений целостности очень мал. (Подробнее об этом рассказано в разделе 8.1."Обеспечение целостности данных").

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

2.4.4. Операции реляционной алгебры

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

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

1.     Проекция (projection, обозначается "π") – это унарная операция (выполняемая над одним отношением), служащая для выбора подмножества атрибутов из отношения R. Она уменьшает арность отношения и может уменьшить его мощность, исключая одинаковые кортежи.

2.     Селекция (selection, обозначается "σ") – это унарная операция, результатом которой является подмножество кортежей исходного отношения, удовлетворяющих условиям, которые накладываются на значения определённых атрибутов.

3.     Декартово произведение (cartesian product, обозначается "×") соответствует определению декартова произведения для РМД.

4.     Объединение (union, обозначается "U") – это бинарная операция над односхемными отношениями R и S, результатом которой является отношение, включающее все кортежи обоих отношений без повторов.

5.     Разность (set difference, обозначается "–") – это бинарная операция над односхемными отношениями (R–S), результатом которой является множество кортежей отношения R, не принадлежащих отношению S.

6.     Пересечение (intersection, обозначается "∩") – это бинарная операция над односхемными отношениями R и S, результатом которой является подмножество кортежей, принадлежащих обоим исходным отношениям.

7.     Соединение (join, обозначается "") – это бинарная операция над разносхемными отношениями R и S. Кортежи результирующего отношения содержат все атрибуты обоих отношений (возможно, за исключением повторов). В общем случае соединение происходит по условию, которое определяет соотношение между значениями атрибутов из разных отношений. Если этим условием является равенство значений атрибутов, такое соединение называетсяэквисоединением. Естественным называется эквисоединение, построенное по условию равенства значений одинаковых атрибутов кортежей исходных отношений.

Фактически, соединение является подмножеством декартова произведения, для которого выполняется некоторое условие.

8.     Деление (division, обозначается "/") – это бинарная операция над разносхемными отношениями R и S. Пусть отношение R содержит атрибуты {r1,r2,...,ri,...,rn}, а отношение S – атрибуты {r1,r2,...,ri}. Результирующее отношение содержит атрибуты {ri+1,...,rn}. Кортеж включается в результирующее отношение, если его декартово произведение с отношением S входит в R.