Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Базы данных Шехтман.doc
Скачиваний:
2
Добавлен:
01.04.2025
Размер:
3 Мб
Скачать
☆

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

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

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

Датой рождения реляционной теории баз данных принято считать 6 июня 1970 года, когда сотрудник фирмы IBM, доктор Э. Кодд, опубликовал статью "Реляционная модель данных для больших коллективных банков". Именно в этой статье впервые встретился термин "реляционная модель данных".

После публикации статьи доктор Э. Кодд продолжил работу по развитию реляционной теории баз данных, подведя под нее мощную математическую основу. Будучи по образованию математиком, Э. Кодд предложил использовать для обработки данных аппарат теории множеств, а конкретно — объе­динение, пересечение, разность, декартово произведение и другие. Он доказал, что любой набор данных может быть представлен в виде простых дву­мерных таблиц, называемых в математике “отношением” (relation). От этого слова и произошло название "реляционная модель данных". Разработанная Коддом теория реляционных баз данных описывает правила эффективной организации данных и правила управления ими.

Теоретической основой реляционной модели является теория отношений, основу которой заложили американец Ч. С. Пирс и немец Э. Шредер в конце 19 века. В их работах было показано, что множество отношений замкнуто относительно некоторых специальных операций, т. е. образует с этими операциями абстрактную алгебру. Этот факт и послужил основой для разработки языка манипулирования данными в реляционной модели.

2. Введение в реляционную модель данных.

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

Отношение R:

A

B

C

…

Кортеж

A1

B1

C1

…

A2

B2

C2

…

Домен

Таблица 4. Иллюстрация понятия отношения.

Вхождение кортежа со значениями атрибутов A, B, C означает что верен предикат (высказывание) R(A1, B1, C1): R(A1, B1, C1) = True. Также R(A1, B1, C1) = True, но R(A1, B2, C2) = False, т. к. в отношении R нет кортежа со значениями атрибутов A1, B2, C2.

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

Отношение и есть “реляционная структура”. N-арное отношение – это подмножество декартова произведения D1D2…Dn множеств D1, D2, …, Dn (n>=1), Di не обязаны быть различными множествами. В рамках реляционной теории их называют доменами. Отношение моделирует реальную ситуацию и содержит только часть возможностей, которые можно получить в результате декартова произведения.

Пример. Рассмотрим отношение R, хранящее информацию о религиях и их основателях. В него входят домены “Основатели мировых религий” и “Мировые религии”.

R:

Основатели мировых религий

Мировые религии

Будда

Буддизм

Христос

Христианство

Магомет

Мусульманство

Это отношение не включает других кортежей, так, например предикат

R(Магомет, Буддизм)

неверен и, следовательно, такого кортежа в отношении быть не должно.

Вхождение домена в отношение – атрибут.

Отношение не имеет двух одинаковых строк - это следует из определения декартова произведения. (Отсутствие одинаковых строк – так называемая первая нормальная форма, разговор о которой впереди.)

Столбцы соответствуют атрибутам отношений. Каждый атрибут отношения имеет уникальное имя.

Порядок строк в таблице произвольный.

Приведем свод свойств объекта по имени отношения (он же реляционная таблица). Итак, отношение – это двумерный массив со следующими свойствами:

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

  2. Элементы в столбце имеют один тип. (Домен – множество атомарных значений одного типа.).

  3. Каждый столбец имеет уникальное имя.

  4. В отношении нет совпадающих строк.

  5. Порядок следования строк и столбцов в отношении не определен.

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

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

Практика реляционных баз данных

СУБД

Отношение

Сущность

Таблица

Кортеж

Запись

Строка

Атрибут

Поле

Колонка, столбец

Таблица 5. Соответствие терминов.

Пример отношения:

Продукт

Поставщик

Цена за ящик

Бананы

Глобус

150

Помидоры

Глобус

230

Лук

Плодовощторг

50

Домен поставщиков – Глобус, Плодовощторг, Центрпродсервис.

Домен продуктов – бананы, помидоры, лук, апельсины, арбузы, яблоки и т. д.

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

Степень отношения – количество атрибутов в нем. Мощность отношения – количество кортежей в нем.

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

Множество атрибутов составляют возможный ключ (иначе говорят потенциальный ключ или ключ-кандидат), если обеспечивается

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

  2. Минимальность. Ни один из атрибутов не может быть исключен из ключа без нарушения уникальности ключа.

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

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

Реляционная база данных – совокупность отношений (relations) (набор двумерных таблиц). Таблицы в базе данных связаны отношениями (relationships). (Обратите внимание: из-за перевода двух разных английских слов одним русским словом возможны недоразумения! Поэтому лучше вместо “отношения между отношениями” говорить “связи между отношениями”, хотя авторы многих источников упорно придерживаются неоднозначного варианта).

Если два отношения отличаются только порядком строк или столбцов, то они считаются одинаковыми.

Отношение – динамическая модель реального объекта. Экземпляр отношения – реализация отношения в текущий момент времени. Схема SR отношения R – перечень имен атрибутов отношения с указанием домена, к которому они относятся:

SR = (A1, A2, …), Ai из Di.

Если атрибуты принимают значения из одного домена, то говорят, что они Θ-сравнимы (Θ – множество допустимых операций сравнения, заданных для домена). Например, если домен содержит числа, то Θ = [= <> >= <= < >]. Домен может содержать символьные данные. Для такого домена изначально определены только операции = и <>. Однако если задать лексикографическое упорядочение, то можно использовать все остальные операции сравнения.

Схема SR отношения R эквивалентна схеме SR1 отношения R1 если R и R1 имеют одинаковую степень и возможно упорядочивание имен атрибутов в S такое, что на одинаковых местах находятся сравнимые атрибуты (т.е. атрибуты из одного домена):

SR = (A1, …, An)

SR1 = (Bi1, …, Bim)

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

SR ~ SR1  n=m, Aj, Bij из Dj

Реляционная модель предполагает наличие множества взаимосвязанных отношений. Связи между отношениями поддерживаются неявно (в отличие от сетевой и иерархической моделей). Как и какие связи поддерживаются? В реляционной модели как и в других моделях данных поддерживаются иерархические связи между отношениями. Одно отношение в связи выступает основным, другое подчиненным. Это означает, что один кортеж основного отношения соответствует нескольким кортежам подчиненного отношения. Для поддержки связи оба отношения должны содержать наборы атрибутов, по которым они связаны. В основном отношении такие атрибуты образуют первичный ключ отношения (PRIMARY KEY), однозначно определяющий кортеж. В подчиненное отношение для моделирования связи включается тот же набор атрибутов. Однако здесь это – вторичный ключ (FOREIGN KEY) (определяет не один кортеж, а множество кортежей, соответствующих одному кортежу основного отношения).

Налогоплательщик Доходы

ИНН, ФИО ИНН, Сумма дохода, место получения дохода

ИНН, Сумма дохода, место получения дохода

ИНН, Сумма дохода, место получения дохода

Первичный ключ отношения Налогоплательщик – атрибут ИНН.

Вторичный ключ отношения Доходы – атрибут ИНН.

Оба отношения связаны между собой общим атрибутом ИНН.