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

Лекция №9

 

Название лекции: Виды отношений, используемых в реляционных системах.

Целостность БД и используемые ключи.

План:

1. Виды отношений, используемых в реляционных системах.

2. Целостность БД и используемые ключи:

2.1. Понятие целостности;

2.2. Потенциальные ключи;

2.3. Внешние ключи;

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

3. Ключи и Null - значения

3.1.Правило целостности объекта. Предпосылки введения правила.

3.1.Внешние ключи и Null – значения.

 

1. Виды отношений, используемых в реляционных системах.

Именованное отношение – это переменная типа отношение, у которой есть имя.

Базовое отношение – это именованное отношение, которое не является производным от других отношений.

Производное отношение – это отношение, определённое через другие именованные отношения (посредством реляционного выражения), и в конечном итоге через базовые отношения.

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

Каждое именованное отношение является выражаемым отношением, но необязательно, что выражаемое отношение имеет имя.

Множество всех выражаемых отношений – это объединение множества всех базовых отношений и множества всех производных отношений.

Представление - это именованное производное отношение. Представление (как и базовое явление, переменным отношениями).

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

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

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

Хранимое отношение – это отношение, которое поддерживается во внешней памяти.

 

Результатом реляционного выражения является отношение, т.е. множество, которое может быть задано с помощью предиката R = {{a, b, c,} | P}

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

Идея использовать исчисление предикатов в качестве основного языка баз данных принадлежит Кунсу (Кuhns).

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

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

Переменная кортежа – это переменная, которая изменяется на некотором отношении, т.е. это переменная, допустимые значения которой – это кортежи данного отношения.

Если переменная кортежа Т изменяется в пределах отношения R, то в любое данное время значения переменой Т это некоторый кортеж t из отношения R.

Реляционное исчисление, основанное на переменных кортежа, называется исчислением кортежей.

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

Наиболее известен язык исчисления доменов это Query – By – Example (QBE) - язык, реализованный в реляционной СУБД PARADOX фирмы BORLAND.

Реляционная алгебра, исчисление кортежей и исчисление доменов являются эквивалентными вариантами языков реляционных СУБД.

 

2. Целостность БД и используемые ключи.

Целостность БД – свойство БД, при наличии которого БД содержит полную и непротиворечивую информацию, необходимую и достаточную для корректного функционирования приложений.

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

Любое правило целостности является специфическим для данной БД.

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