Реляційна модель Кодда. Реляційна алгебра

12 правил Кодда. Ці правила є напів-офіційним визначенням поняття реляційна база даних:

· правило 0: Основное правило (Foundation Rule): Реляционная СУБД должна быть способна полностью управлять базой данных, используя связи между данными.:

· правило 1: Явное представление данных. Информация должна быть представлена в виде данных, хранящихся в ячейках. Данные, хранящиеся в ячейках, должны быть атомарны. Порядок строк в реляционной таблице не должен влиять на смысл данных.

· правило 2: Гарантированный доступ к данным. Доступ к данным должен быть свободен от двусмысленности. К каждому элементу данных должен быть гарантирован доступ с помощью комбинации имени таблицы, первичного ключа строки и имени столбца.

· правило 3: Полная обработка неизвестных значений: Неизвестные значения NULL, отличные от любого известного значения, должны поддерживаться для всех типов данных при выполнении любых операций.

· правило 4: Доступ к словарю данных в терминах реляционной модели. Словарь данных должен сохраняться в форме реляционных таблиц, и СУБД должна поддерживать доступ к нему при помощи стандартных языковых средств.

· правило 5: Полнота подмножества языка: Система управления реляционными базами данных должна поддерживать хотя бы один реляционный язык, который

o (а) имеет линейный синтаксис,

o (б) может использоваться как интерактивно, так и в прикладных программах,

o (в) поддерживает операции определения данных, определения представлений, манипулирования данными (интерактивные и программные), ограничители целостности, управления доступом и операции управления транзакциями (begin, commit и rollback).

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

· правило 7: Наличие высокоуровневых операций управления данными. Операции вставки, модификации и удаления данных должны поддерживаться не только по отношению к одной строке реляционной таблицы, но по отношению к любому множеству строк.

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

· правило 9: Логическая независимость данных: Представление данных в приложении не должно зависеть от структуры реляционных таблиц.

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

· правило 11: Дистрибутивная независимость: База данных может быть распределённой, может находиться на нескольких компьютерах, и это не должно оказывать влияние на приложения..

· правило 12: Согласование языковых уровней: Если используется низкоуровневый язык доступа к данным, он не должен игнорировать правила безопасности и правила целостности, которые поддерживаются языком более высокого уровня.

Теоретичні основи реляційної моделі баз даних були закладені Е.Коддом на початку 70-х років Введемо поняття реляції.

Нехай V – основний алфавіт, тобто деяка скінченна множина. w - деякий виділений елемент; w Ï V.

Позначимо через D1¢, D2¢, … Dn¢ Í V*; де V* - множина всіх слів в алфавіті V.

Домени визначаються як Di = Di¢ È {w};

Множину імен атрибутів позначимо W. І введемо однозначне, але не обов’язково ін’єктивне відображення N: W ® {D1, D2, … Dn}, яке іменує домени. Кожен домен може мати кілька імен, позначимо Wі = N-1(Dі) – множину всіх імен домена Dі. Очевидно, що ці множини мають такі властивості: Wі Ç Wj = Æ; È(i=1¸ n) Wі = W;

Атрибутом називається (А,Dі) – де А Î Wі ,

Нехай Â Í (Аі1,D1)Ä(Аі2,D2)Ä…Ä(Аік,Dк) – відношення над декартовим добутком атрибутів. Введемо над множиною так визначених відношень розбиття на класи еквівалентності: до одного класу віднесемо ті відношення, які відрізняються тільки порядком компонент у декартовому добутку. Представник такого класу називається реляцією R((Аі1,D1),(Аі2,D2),…,(Аік,Dк)).

Схемою реляції R(А12,…,Ак) називають відповідну реляційну таблицю без даних. Через aR будемо позначати множину імен атрибутів реляції R.

Реляційна алгебра – алгебра в строгому розумінні. Елементи основної множини – реляції.

Сигнатура складається з 8-ми операцій.

Теоретико-множинні операції Ç,È,\ – частково визначені (визначені тільки для сумісних реляцій з однаковою структурою).

Реляції R1(A1, …, An) і R2(B1, …, Bk) називаються сумісними, якщо у них однакова кількість атрибутів; та кожному атрибуту першої реляції можна поставити у взаємно однозначну відповідність атрибут другої реляції.

Об’єднання. R1ÈR2: в результуючу реляцію попадають всі кортежі першої і другої реляції без дублів.

Перетин. R1ÇR2: в результуючу реляцію попадають кортежі, присутні і в першій, і в другій реляції.

Різниця. R1\R2: в результуючу реляцію попадають кортежі з R1, яких немає в R2.

Декартів добуток. R1ÄR2 – визначається для будь-яких реляцій.

R1ÄR2 = {(r1, …, rk, rk+1, …, rk+n) | (r1, …, rk) Î R1, (rk+1, …, rk+n) Î R2}.

Ця операція може різко збільшити об’єм результату.

Проекція. Реляція S(B1, …, Bn) узгоджена з R(A1, …, Ak), якщо $ f: aS ® aR, N(f(Bi)) = N(Ai), i = 1 ¸ n.

Відображення f однозначне, але, взагалі кажучи, не взаємно однозначне.

Проекцією реляції R на схему S відносно узгодження f будемо називати реляцію

T = R[S] таку, що: T = {(r[Ai1], r[Ai2], …, r[Ain])} та T = R[Ai1, Ai2, …, Ain,]

Операція q - з’єднання (q - join).

Введемо поняття q - порівнюваності для кортежів.

На двох реляціях R(A1, …, Ak) і S(B1, …, Bn) візьмемо відповідно два підкортежі:

r1 = (d1, d2, …, dm), r2 = (d1|, d2|, …, dm|);

Нехай q = {=, ¹, <, £, >, ³, …}; Два кортежі r1 і r2 q - порівнювані:

r1q r2 Û di q di|, i = 1,m; (m £ k, m £ n);

Нехай в реляції R виділений список атрибутів M1 = {A1, …, Am}, а в реляції S список атрибутів M2 = {B1, …, Bm}, причому відповідні атрибути співпадають по доменам, тобто N(Ai) = N(Bi), i = 1,m;

Операція q - з’єднання реляції R з реляцією S по спискам M1 і M2 : R[M1 q M2]S = {t Î R Ä S | t[M1] q t[M2]}.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: