II. Реляційна модель баз даних. Мови запитів.
Теоретичні основи реляційної моделі баз даних були закладені Е.Коддом на початку 70-х років [1]і спочатку дійсно мали чисто теоретичний характер. На відміну від поширених на той час систем з ієрархічними чи мережаними типами структур даних реляційний підхід запропонував гранично спрощені структури даних –реляціїчи таблиці, але значно употужнив мови маніпулювання даними та мови запитів.
Введемо поняття реляції формально.
Нехай V – основний алфавіт, тобто деяка скінченна множина. - деякий виділений елемент;V. Забігаючи наперед, зазначимо, щобуде означатиневизначено.
Позначимо через D1, D2, … Dn V* ; деV* - множина всіх слів в алфавіті V.
Домени визначаються якDi = Di {};
Множину імен атрибутів позначимо . І введемо однозначне, але не обов’язково ін’єктивне відображенняN: {D1, D2, … Dn}, яке іменує домени. Кожен домен може мати кілька імен, позначимо і = N-1(Dі) – множину всіх імен домена Dі. Очевидно, що ці множини мають такі властивості:
і j = ; (i=1 n) і = ;
В класичному розумінні відношення визначається як підмножина декартового добутку, але для реляційної моделі в таблиці суттєвим є не місце розташування стовбчика, а його ім’я, тому формальне визначення таблиці(реляції) тут дещо складніше.
Атрибутом називається (А,Dі) – де А і , тобто атрибут визначається як іменований домен, причому у різних атрибутів домени можуть бути однакові, а імена відрізнятися.
Нехай (Аі1,D1)(Аі2,D2)…(Аік,Dк) – відношення над декартовим добутком атрибутів. Введемо над множиною так визначених відношень розбиття на класи еквівалентності наступним чином: до одного класу віднесемо ті відношення, які відрізняються тільки порядком компонент у декартовому добутку. Представник такого класу називається реляційною таблицею або реляцією R((Аі1,D1),(Аі2,D2),…,(Аік,Dк)).
Схемою реляціїR(А1,А2,…,Ак) називають відповідну реляційну таблицю без даних, тобто без наповнення. Сукупність схем реляцій називають схемою бази даних.
ЧерезR будемо позначати множину імен атрибутів реляціїR.
Розглянемо два приклади опису схем бази даних.
Перший приклад відноситься до предметної області, що пов’язана з постачальниками (П), деталями (Д), отримувачами (О) та поставками (ОПД). Спочатку опишемо домени:
CREATE DOMAIN C CHAR(3) DEFAULT ‘ ‘;
CREATE DOMAIN N INTEGER DEFAULT 0;
CREATE DOMAIN STR CHAR(20) DEFAULT ‘ ‘;
CREATE DOMAIN COLOR (черв,оранж,жовт,зел,блак,син,фіол);
У наведеному описі після ключових слів CREATE DOMAIN задається власне ім’я домена, а далі – його тип.
Тепер введемо реляції:
CREATETABLEП (кпC, прізвSTR, статусN, містоSTR,
PRIMARY KEY(кп));
{кп – код постачальника}
CREATE TABLE Д(кд C, назва STR, колір COLOR, вага REAL,
місто STR, PRIMARY KEY(кд));
{кд – код деталі}
CREATE TABLE O (кo C, прізв STR, місто STR,
PRIMARY KEY(кo));
{ко – код отримувача}
CREATE TABLE ОПД (кп C, кд C, ко С, кільк N, ціна REAL,
PRIMARY KEY(кп, кд, ко));
Реляція поставка (ОПД), окрім ключових атрибутів, включає до свого складу також атрибути: кількість деталей в поставці та ціна однієї деталі. Зауважимо, що при такому описі ціна однієї деталі залежить не тільки від самої деталі, а і від постачальника та отримувача.
Другий приклад описує схему бази даних для предметної області – розклад занять в учбових закладах. Спосіб запису досить часто застосовується в публікаціях.
Лектор(кл, прізв, орг, тел, наук_ступ);
{код_лектора, місце основної роботи, телефон, науковий ступінь}
Предмет(кп, назва, тип, год, контр);
{код предмета, назва предмета, тип(лекції,практич,лаб...), кількість годин, контроль(іспит, залік, диф.залік, нічого)}
Група(кг, фак, каф, курс, к_чол);{студенти}
{код групи, факультет, кафедра, курс, кількість чоловік}
Розклад(кл, кп,кг, день, ауд, пара);
{день заняття,аудиторія, пара(1,2,3,4,5..)}
Підкреслені атрибути утворюють ключ реляції. Такий спосіб запису схеми бази даних використовується в тих випадках, коли тип даних для доменів атрибутів не має першочергового значення.