Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
бд.docx
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
1.92 Mб
Скачать

Замкнутість реляційної алгебри і операція перейменування Особливості теоретико-множинних операцій реляційної алгебри

Хоча в основі теоретико-множинної частини реляційної алгебри лежить класична теорія множин, відповідні операції реляційної алгебри мають деяки особливості.

Почнемо з операції об'єднання A UNION B (рис. 6.1.) (все, що буде говоритися з приводу об'єднання, переноситься на операції перетину A INTERSECT B (рис. 6.2.) і взяття різниці A MINUS B (рис. 6.3.)). Сенс операції об'єднання в реляційній алгебрі в цілому залишається теоретико-множинним. Але, якщо в теорії множин операція об'єднання осмислена для будь-яких двох множин-операндів, то в реляційній алгебрі результатом операції об'єднання повинно бути відношення. Якщо допустити в реляційній алгебрі можливість теоретико-множинного об'єднання довільних двох відношень (з різними схемами), то, звичайно, результатом операції буде множина, але множина різнотипних кортежів, тобто не відношення. Якщо виходити з вимоги замкнутості реляційної алгебри щодо поняття відношення, то така операція об'єднання є безглуздою.

Рис. 6.1. Операція об'єднання двох відношень A UNION B

Рис. 6.2. Операція перетину двох відношень A INTERSECT B

Рис. 6.3. Операція різниці двох відношень A MINUS B

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

Якщо два відношення сумісні для об'єднання, то при звичайному виконанні над ними операцій об'єднання, перетину і взяття різниці результатом операції є відношення з корректно повним заголовком, що збігається з заголовком кожного з операндів-відношень. Нагадаємо, що якщо два відношення «майже» сумісні для об'єднання, тобто сумісні в усьому, крім назв атрибутів, то до виконання операції типу з'єднання ці відношення можна зробити повністю сумісними з об'єднання шляхом застосування операції перейменування.

Зауважимо, що включення до складу операцій реляційної алгебри трьох операцій об'єднання, перетину і взяття різниці є очевидно надлишковим, оскільки відомо, що будь-яка з цих операцій виражається через дві інших. Тим не менш, Кодд свого часу вирішив включити всі три операції, виходячи з інтуїтивних потреб потенційного користувача системи реляційних БД, далекого від математики.

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

Тому в реляційній алгебрі використовується спеціалізована форма операції взяття прямого добутку - розширений прямий добуток відношень. При взятті розширеного прямого добутку двох відношень A TIMES B елементом результуючого відношення є кортеж, що є конкатенацією (або злиттям) одного кортежу першого відношення і одного кортежу другого відношення.

Але тепер виникає друге питання - як отримати коректно сформований заголовок відношення-результату? Очевидно, що проблемою може бути іменування атрибутів результуючого відношення, якщо операнди-відношення мають однойменні атрибути.

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

Якщо нам задані два відношення «Навчальна група» (табл. 6.1.) та «Студент» (табл. 6.2.), тоді результат узяття розширеного прямого добутку показан в табл. 6.3.

Таблиця 6.1. Відношення НАВЧАЛЬНА_ГРУПА

Код навчальної групи

Назва групи

500

КА-01

600

КА-02

Таблиця 6.2. Відношення СТУДЕНТ

Код студента

ПІБ

1

Рубан Ілля Сергійович

2

Гнатенко Валерій Миколайови

3

Земляний Кирило Дмитрович

Таблиця 6.3. Розширений прямий добуток A TIMES B

Код навчальної групи

Назва групи

Код студента

ПІБ

500

КА-01

1

Рубан Ілля Сергійович

500

КА-01

2

Гнатенко Валерій Миколайови

500

КА-01

3

Земляний Кирило Дмитрович

600

КА-02

1

Рубан Ілля Сергійович

600

КА-02

2

Гнатенко Валерій Миколайови

600

КА-02

3

Земляний Кирило Дмитрович

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

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

(A OP B) OP C = A (B OP C),

і отже, без введення двозначності можна написати

A OP B OP C,

де A, B і C - відношення, що мають властивості, необхідні для коректного виконання відповідної операції. Всі операції, крім взяття різниці, є комутативними, тобто

A OP B = B OP A.