Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛЕКЦИИ_УД.doc
Скачиваний:
73
Добавлен:
16.11.2019
Размер:
2.38 Mб
Скачать

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

Реляционная модель была предложена Э.Ф.Коддом в 1970 году в его основополагающей статье “Реляционная модель для больших совместно используемых банков данных”.

В настоящее время существует несколько сотен типов различных реляционных СУБД. Они не все удовлетворяют требованиям реляционной модели. Примеры: Access и FoxPro фирмы Microsoft; Paradox и Visual dBase фирмы Borland и ряд других.

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

На физическом уровне, данные могут быть организованы на структур оформления.

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

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

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

Таблица 1

Атрибут

Имя домена

Содержание домена

Определение домена

Город

CITY

Множество всех названий городов в России

Символьный: размер 15

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

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

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

Степень отношения – количество атрибутов, которое оно содержит.

Отношение с одним атрибутом, называются унарными отношениями, отношения с двумя атрибутами – бинарными отношениями, с тремя – тринарными, в общем случае – n-арными.

Кардинальность отношения – количество кортежей, которые содержат отношения. Эта характеристика меняется при добавлении или удалении отношений.

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

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

Рис.17. Пример реляционной модели

Отношение R, определенное на множестве доменов D1, D2, …, Dn (не обязательно различных) содержит заголовок и тело.

Заголовок содержит фиксированное множество атрибутов или, точнее, пар <имя - атрибута: имя - домена >:

{<А1:D1>, < А2:D2>, …,< Аn:Dn>},

причем каждый атрибут соответствует одному и только одному домену. Все имена атрибутов А1, А2, …, Аn разные. На практике заголовок, это просто набор атрибутов. Имена доменов опускаются.

Тело содержит множество кортежей. Каждый кортеж, в свою очередь, содержит множество пар <имя - атрибута: значение - атрибута >:

{<А1:Vi1>, < А2:Vi2>, …,< Аn:Vin>}

(i=1, 2, …, m, где m – количество кортежей в этом множестве).

m – кардинальность отношений;

n – степень отношения.

Таким образом, если мы принимаем эти правила, то можно считать, что таблица – это приемлемое изображение отношений.

Замечание. Один и тот же дометт не может использоваться в отношении более одного раза. Поэтому нельзя давать имена атрибутам, совпадающие с именами доменов: А1 – D1 или A1 – D2 и т. п.

Реляционная база данных – набор нормализованных отношений.

Таблица 2 Альтернативная терминология

Официальные термины

Альтернативный вариант 1

Альтернативный вариант 2

Отношение

Таблица

Файл

Кортеж

Строки

Запись

Атрибут

Столбец

поле

Реляционная схема – это имя отношения, за которым следует множество пар имен атрибутов и доменов. Например, R {А1:D1, А2:D2, …, Аn:Dn}.

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

ЛЕКЦИЯ (ТЕМА_ЛЕКЦИИ, ДАТА_ПРОВЕДЕНИЯ,КОЛИЧЕСТВО_СЛУШАТЕЛЕЙ)

Концептуальная модель (концептуальная схема) – это множество всех реляционных схем отношений.

Отношению соответствуют следующие свойства:

  • отношение имеет имя, которое отличается от имен других отношений;

  • в любом отношении нет одинаковых кортежей;

  • кортежи отношения не упорядочены;

  • каждый атрибут имеет уникальное имя;

  • атрибуты не упорядочены;

  • все значения атрибутов атомарные;

  • значения атрибута берутся из одного и того же домена.

Иногда значения некоторых атрибутов в отношении могут отсутствовать. В 1970 году Э. Ф. Коддом был предложен подход к этой проблеме, в котором для представления отсутствующей информации используются специальные маркеры, называемые null-значения.

Реляционная модель включает правила целостности:

  1. Целостность объектов. Ни один элемент первичного ключа базового отношения не может быть null-значением.

  2. Ссылочная целостность. База данных не должна содержать несогласованных значений внешних ключей.

  3. Целостность атрибутов. Значения каждого атрибута берутся из соответствующего домена.

Кроме понятия целостности реляционная модель включает понятие операторы. Эта часть модели существенно эволюционирована со времени первой публикации Э. Ф. Кодда. Основным компонентом этой части является реляционная алгебра, которая в основном состоит из набора операторов, использующих отношения в качестве операндов и возвращающих отношения в качестве результата. Первоначально был предложен набор из восьми операторов: выборка, проекция, произведение, объединение, пересечение, вычитание, соединение и деление.

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

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

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

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

Последствием публикации статей Э. Ф. Кодда, вводящих реляционную модель и реляционные языки (алгебру и исчисление), стал взрыв активности исследовательских организаций по реализации реляционных языков. Одним из таких языков стал SQL (Structured Query Language – язык структурированных запросов). Хотя название SQL предполагает, что это язык запросов, он включает в себя помимо средств запросов определение таблиц, обновление БД, определение представлений данных и привилегий доступа .

Значительная часть SQL основана на реляционном исчислении, однако в нем реализованы некоторые операции реляционной алгебры. В частности, объединение, пересечение, разность и соединение реализованы в явном виде как операторы SQL.

Ниже приведен текст простого запроса, который обращается только к одной таблице БД.

Запрос: Кто работает штукатуром?

SELECT NAME

FROM WORKER

WHERE SRILL_TYPE=’Штукатур’

Фраза SELECT перечисляет столбцы, которые должны войти в результирующую таблицу. Фраза FROM задает одну или более таблиц, к которым обращается запрос. Фраза WHERE содержит условие, на основании которого выбираются строки таблицы (таблиц).

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

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

  • номера поставщиков должны быть в формате Pnnnn, где nnnn может принимать значение до четырех десятичных цифр;

  • значение статуса поставщика должно быть в диапазоне 1-10;

  • если город поставщика – Москва, то статус поставщика должен быть 10;

и т.д.

Любое данное правило является специфическим для БД. Однако в дополнение к специфическим правилам в реляционной модели есть ряд общих правил целостности. Эти особые правила применяются к любой базе данных. И они связаны с понятием реляционного ключа.

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

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

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

Первичный ключ – потенциальный ключ, который выбран для уникальной идентификации кортежей.

Альтернативный ключ – потенциальный ключ, не ставший первичным ключом.

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

РАБОЧИЙ (Шифр - рабочего, Фамилия, Адрес)

НАЗНАЧЕНИЕ (Шифр – рабочего, Шифр – задания, Дата, Продолжительность)

ЗАДАНИЕ (Шифр - задания, Адрес – задания, тип, Статус)

Ясно, что значения атрибутов Шифр – рабочего и Шифр – задания в отношении НАЗНАЧЕНИЕ должны соответствовать значениям присутствующим в отношениях РАБОЧИЙ и ЗАДАНИЕ. Атрибуты Шифр – рабочего и Шифр – задания в отношении НАЗНАЧЕНИЕ являются примерами того, что мы называем внешними ключами.

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

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

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

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

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

  1. Что должно случиться при попытки удалить объект ссылки внешнего ключа?

Например, удалить поставщика, для которого есть, по крайней мере, одна поставка. В общем существует по меньшей мере две возможности:

  • Ограничить – «ограничить» операцию удаления, до момента, когда не будет существовать соответствующих поставок (в противном случае операция запрещается);

  • Каскадировать – «каскадировать» операцию удаления, удаляя также соответствующие поставки.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]