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(А1,А2,…,Ак) називають відповідну реляційну таблицю без даних. Через 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]}.