Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Rel_Alg.doc
Скачиваний:
27
Добавлен:
07.03.2016
Размер:
138.24 Кб
Скачать

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

ЧерезR будемо позначати множину імен атрибутів реляціїR.

Розглянемо два приклади опису схем бази даних.

  1. Перший приклад відноситься до предметної області, що пов’язана з постачальниками (П), деталями (Д), отримувачами (О) та поставками (ОПД). Спочатку опишемо домени:

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. Другий приклад описує схему бази даних для предметної області – розклад занять в учбових закладах. Спосіб запису досить часто застосовується в публікаціях.

Лектор(кл, прізв, орг, тел, наук_ступ);

{код_лектора, місце основної роботи, телефон, науковий ступінь}

Предмет(кп, назва, тип, год, контр);

{код предмета, назва предмета, тип(лекції,практич,лаб...), кількість годин, контроль(іспит, залік, диф.залік, нічого)}

Група(кг, фак, каф, курс, к_чол);{студенти}

{код групи, факультет, кафедра, курс, кількість чоловік}

Розклад(кл, кп,кг, день, ауд, пара);

{день заняття,аудиторія, пара(1,2,3,4,5..)}

Підкреслені атрибути утворюють ключ реляції. Такий спосіб запису схеми бази даних використовується в тих випадках, коли тип даних для доменів атрибутів не має першочергового значення.

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