Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекція 3 Реляційні БД.doc
Скачиваний:
30
Добавлен:
19.11.2019
Размер:
3 Мб
Скачать
☆

Реляційне числення доменів

У реляційному численні доменів використовуються змінні, значення яких беруться з доменів, а не з кортежів відношень. Якщо P(dl,d2,…,dn) позначає предикат з змінними dl,d2,…,dn, та множина усіх змінних домену dl,d2,…,dn, для яких предикат чи формула P(dl,d2,…,dn) істинні, позначається наступним виразом:

{dl,d2,…,dn|P(dl,d2,…,dn)}

У реляційному численні доменів найчастіше потрібно перевірити умову приналежності, щоб визначити, чи належать значення зазначеному відношенню. Вираз R(x,y) вважається істинним тоді і тільки тоді, коли у відношенні R мається кортеж зі значеннями х и у в двох його атрибутах.

Приклад 3.10 Операція розподілу доменів

Знайдіть імена всіх менеджерів, зарплата яких перевищує 25000 фунтів стерлінгів.

{fname, lname | Position, Salary

(Staff (lname, position, salary) and position = ‘Manager’ and salary > 25000)}

Якщо порівняти цей запит з еквівалентним запитом реляційного числення кортежів, приведеним у прикладі 3.11, А, то можна побачити, що кожному атрибуту привласнене ім'я (змінної). Умова Staff (Iname, position, salary) гарантує, що змінні домену LName, Position і Salary будуть обмежені атрибутами того ж самого кортежу. Тому ми можемо використовувати формулу Position = 'Manager' замість формули. Staff.Position = 'Manager'.

Створіть список усіх співробітників, що відповідають за роботу з об'єктами нерухомості в Глазго

{fname, lname | sno Staff(sno, fname, lname)

and city (Property_for_Rent(pno, sno) and P.city = ‘Glasgow’)}

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

3.4.3. Інші мови

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

Мови на основі перетворень є класом непроцедурних мов, що використовують відношення для перетворення вихідних даних до необхідного виду. Ці мови надають прості у вживанні структури для формулювання необхідного результату наявними засобами. Прикладами мов на основі перетворень є мова SQUARE, мова SEQUEL і його відгалуження - мова SQL.

Графічні мови надають користувачеві малюнок чи інше графічне відображення структури відношень. Користувач створює деякий зразок бажаного результату, і система повертає викликані дані в зазначеному форматі. Прикладом подібної мови є мова QBE (Query-By-Example).

Ще однією категорією мов є мови четвертого покоління (fourth-generation languages — 4GL), що дозволяють створювати цілком готову і відповідну вимогам замовника прикладну програму за допомогою обмеженого набору команд і в той же час надають дружнє стосовно користувача середовище розробки, найчастіше побудоване на використанні команд меню. У деяких системах використовуються навіть деякі різновиди природної мови, тобто обмеженої версії звичайної англійської мови, що іноді називається мовою п'ятого покоління (fifth-generation language — 5GL). Однак розробки проектів подібних мов по більшій частині усе ще знаходяться в зародковому стані.