Навігація
Головна
 
Головна arrow Інформатика arrow Бази даних
< Попередня   ЗМІСТ   Наступна >

Основи реляційного числення

РА реалізується у вигляді процедурних мов, але ті ж процеси запиту і оновлення можуть бути описані мовою реляційного числення (РІ). У реляційному обчисленні виділяють числення доменів і числення кортежів.

Обчислення кортежів при колишніх позначеннях визначається шісткою

(4.1)

і має вираз {x (R) | f (x)}, де f - дозволена формула над U; х - вільна змінна.

Обчислення кортежів - формалізована система позначень і правил для запису виразу нового правила.

Для опису операцій в обчисленні кортежів можливо використовувати запропонований Е. Коддом мову АЛЬФА. У ньому [91 використовуються наступні оператори: get w - отримати з робочої області w; range - область; hold - знайти (первинний ключ запам'ятовує місце кортежів); put - включити; having - приналежний; update - оновити; insert - вставити; delete - знищити; up, down - (сортування) по зростанням, зменшенням; count - рахувати (число записів); total - загальний підсумок. Застосовуються наступні позначення: Y, X - безліч елементів даних з домену X в реляційному відношенні Y; $ - Існує; "- Будь-який; È - АБО; Ç - І; ù - НЕ;" х "- символ значення х.

Запити в РІ виражаються шляхом специфікації предиката, якому повинні задовольняти кортежі і домени. Формули в РІ будуються з атомів і сукупності логічних і алгебраїчних операцій.

Кожен користувач має своєї робочої областю w (область зв'язку між користувачем і моделлю даних). У робочу область w потрапляють дані, відібрані в результаті пошуку (рис. 4.3). Робоча область w містить відносини, виділені з МД допомогою оператора get. Ставлення має форму таблиці.

Після завершення роботи оператора get вміст w може оброблятися будь-яким способом, який допускають базові мови програмування. Оператор get забезпечує завжди прямий пошук (за значеннями, умовам для даних) послідовно, але не за адресою. Одиницею доступу в мові РІ є екземпляр логічного запису (кортеж). Користувач може визначити в операторі get будь-яку вибірку доменів з одного або декількох відносин.

На основі обчислення кортежів побудований декларативний мову програмування Structured Query Language (SQL).

Схема виконання запиту

Рис. 4.3. Схема виконання запиту

Приклад 4.4. Ілюстрацію основних операцій на мові РІ будемо проводити на наступних відносинах [9]:

СТУД (CH, СФ, Балл, Курс, Група, Кафедра),

Викладач (ПН, ПФ, Посада, Кафедра, Зарплата, Надбавка),

СТПР (СН, ПН, Годинник),

де СТУД, преп, СТПР - відносини Студент, Викладач, Студент-Викладач; СН, СФ - номер залікової книжки та прізвище студента відповідно; ПН, ПФ - табельний номер та прізвище викладача відповідно.

Варіантів опису запитів дуже багато, тому розглянемо їх основні класи.

I. Оператори пошуку:

а) простий пошук - отримати прізвища студентів (надлишкові дублюючі значення не поміщаються в робочу область w)

get w (СТУД.СФ);

На мові SQL йому відповідає команда

SELECT СТУД.СФ FROM Студ;

Більш докладно мова SQL розглянуто в гол. 5.

б) пошук з використанням кванторів $ і "і логічних операцій - чи існують прізвища студентів такі; табельний номер викладача - 2 486

range СТПРх

get w (СТУД.СФ): х (Х.СН = СТУД.СНХ.ПН = '2486');

II. Операції поновлення:

а) просте оновлення - замінити назву кафедри ІіУС у викладача з табельною номером 2486

hold w (ПРЕП.ПН, ПРЕП.Кафедра): ПРЕП.ПН = 2 486 w.Кафедра = ІіУС

update w;

б) просте включення - включити (put) у відношення запис про студента з номером залікової книжки 857 Петрові: бал - 3, курс - 4, група І4, кафедра ІіУС

w.CH = 857

w.CФ = Петров

w.Бал 3

w.Kyp c = 4

w.Группа = І4

w.Кафедра = ІіУС

put w (CTУД);

в) видалення - видалити дані про студентів, що мають бал менше 3

hold w (CTУД): СТУД.Балл <3

delete w;

д) оновлення основного ключа - замінити табельний номер викладача з № 785 на № 127

hold w (ΠΡΕΠ): ПРЕП.ПН = 785

delete w

w.ΠΗ = 127

put w (ΠΡΕΠ).

III. Обчислювані операції (бібліотечні функції):

а) кількість записів про студентів

get w (count (CTУД.CH));

Обчислення доменів. У численні доменів, обумовленому тієї ж шісткою елементів (4.1), змінні використовуються на доменах і операції можуть містити кілька змінних.

Запит: знайти номери, прізвища і бали студентів 4 курсу групи И4 кафедри ІіУС

{XYZ | СТУД (XYZ 4 И4 ІіУС)}.

Запит: отримати прізвища викладачів і кількість годин

{XYP | $ Z $ L $ M $ N $ Q (ΠΡΕΠ {Ζ ІіУС Μ NX Р) Ç СТПР (QZ Υ))}.

У загальному вигляді - це вираження

(а1 .. аn | (Çb1) ... (Çbm) (R1 (c11 ... c1k)) ... (Rp (cp1 ... cpk))},

де сij - деякі значення аi, bi, що з'являються не менше одного разу, або константи. Всі змінні неявно пов'язані квантором існування і відображаються підкресленими символьними рядками. Неподчеркнутие рядки є константами. Виведення на друк позначається символом Р. (print), за яким можливе зазначення імені змінної (наприклад Ρ.A).

На основі обчислення доменів М.М. Злуфф, як зазначено в [9], створив [9] візуальний декларативний мову програмування Query By Example (QBE).

В силу своєї універсальності мова SQL (точніше SQL2) одержав широке поширення в сучасних реляційних БД і буде докладніше розглянуто в гол. 5.

У світлі сказаного закономірно виникає питання про зіставлення РА і РІ в сенсі повноти і замкнутості операцій перетворення таблиць.

Загальним для РА і РІ (рис. 4.4) є простота, незалежність даних від фізичної організації та фізичних методів доступу.

Перевагою реляційної алгебри є можливість доказу повноти системи операцій. Однак операції реляційної алгебри відповідають процедурним мовам, що характерно для розробників і користувачів-програмістів і не дуже зручно для користувачів-непрограмістів. Операція реляційного числення реалізується у вигляді декларативних мов програмування, що для користувача переважніше. Іншими словами, РА доповнюється РІ. У водночас доведення повноти системи операцій в реляційному обчисленні скрутно.

Доведено [4, 10, 11] однозначна відповідність груп операцій реляційної алгебри і реляційного числення. Це одночасно є доказом повноти і замкнутості системи операцій в РІ і можливості переходу до декларативних мов типу SQL.

Співвідношення реляційного обчислення і реляційної алгебри

Рис. 4.4. Співвідношення реляційного обчислення і реляційної алгебри

 
Якщо Ви помітили помилку в тексті позначте слово та натисніть Shift + Enter
< Попередня   ЗМІСТ   Наступна >
 
Дисципліни
Агропромисловість
Аудит та Бухоблік
Банківська справа
БЖД
Географія
Документознавство
Екологія
Економіка
Етика та Естетика
Журналістика
Інвестування
Інформатика
Історія
Культурологія
Література
Логіка
Логістика
Маркетинг
Медицина
Нерухомість
Менеджмент
Педагогіка
Політологія
Політекономія
Право
Природознавство
Психологія
Релігієзнавство
Риторика
Соціологія
Статистика
Техніка
Страхова справа
Товарознавство
Туризм
Філософія
Фінанси
Пошук