ДОДАТКОВІ ВІДОМОСТІ ПРО Реляційних властивість замкнутості

Як було описано в розділі 3, той факт, що результатом будь-якої конкретної реляційної операції з відносинами є інше ставлення, отримав назву реляційного властивості замкнутості З властивості замкнутості випливає, що можуть застосовуватися вкладені реляційні вирази такими є реляційні вирази, операнди яких, в свою чергу, представлені реляційними виразами довільної складності (В цьому проявляється очевидна аналогія між можливістю застосовувати вкладені реляційні вирази в реляційної алгебри і можливістю створювати вкладені арифметичні вирази у звичайній арифметиці насправді, той факт, що відносини в алгебрі підкоряються властивості замкнутості, важливий саме з тих же причин, по яким має важливе значення те, що числа у звичайній арифметиці також підпорядковуються властивості замкнутості)

Тепер відзначимо, що при обговоренні властивості замкнутості в розділі 3 був навмисно пропущений один дуже важливий пункт Нагадаємо, що кожне відношення складається з двох частин – заголовка і тіла висловлюючись неформально, заголовок – це атрибути, а тіло – кортежі Структура заголовка для базового відносини (де базовим ставленням, як зазначено в розділі 5, є значення базової змінної відносини), безумовно, відома в системі, оскільки вона вказана у складі визначення відповідної базової змінної відносини А як щодо похідних відносин Наприклад, розглянемо наступний вираз

S  JOIN  P

Це вираз являє собою зєднання відносин постачальників і деталей за співпадаючими даними про міста-по атрибуту CITY, який є єдиним загальним атрибутом в двох відносинах Нам відомо, як виглядатиме тіло результуючого відносини, а що можна сказати про заголовку З властивості замкнутості слід, що це ставлення має мати заголовок, а системі необхідно мати відомості про структуру цього заголовка (фактично, як зазначено нижче, користувач також повинен мати ці відомості) Іншими словами, результуюче відношення (безусловно) має належати до деякого цілком певному типом відношення Тому для повної підтримки властивості замкнутості слід визначати реляційні операції таким чином, щоб можна було гарантувати формування будь-якою операцією такого результату, який має допустимий тип відносини, зокрема, має допустимі імена атрибутів (До речі, слід зазначити, що саме цей аспект алгебри часто не отримує достатньої висвітлення в літературі, а також, на жаль, в мові SQL і тому в продуктах SQL одним з помітних винятків є опис цієї теми, наведене в [72] і [710] Трактування алгебри, представлена ​​в цьому розділі, була підготовлена ​​під дуже великим впливом цих двох робіт)

Одна з причин, за якими потрібно, щоб кожне результуюче відношення мало допустимі імена атрибутів, полягає в тому, що завдяки цьому зявляється можливість посилатися на дані атрибути в наступних операціях, зокрема, в операціях, що викликаються на виконання в будь-якому іншому місці всього підвиразу Наприклад, немає резонних підстав навіть записувати вираз, подібне наступному, якщо не відомо, що результат обчислення виразу s JOIN P має атрибут з імям CITY

( S JOIN P ) WHERE CITY = Athens

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

В якості попереднього кроку до досягнення цієї мети введемо новий оператор, RENAME, призначення якого (неформально висловлюючись) складається вперейменування атрибутів зазначеного відношення Точніше, оператор RENAME приймає задане відношення і повертає інше, ідентичне заданому, за винятком того, що один з його атрибутів має інше імя (Заданий ставлення має бути вказано з використанням деякого реляційного вираження, яке може включати інші реляційні операції) Наприклад, можна записати наступний вираз

S RENAME CITY AS SCITY

Це вираз (слід підкреслити що це – вираз, а не «команда або оператор і тому може вкладатися в інші вирази) призводить до отримання відносини з тим же заголовком і тілом, що і відношення, яке є поточним значенням змінної відносини S, за винятком того, що атрибут із зазначенням міста в ньому називається SCITY, а не CITY, як показано нижче

Примітка Слід відзначити той важливий факт, що цей вираз з оператором RENAME не змінює змінну відносини постачальників в базі даних Воно є просто вираженням (точно так само, як, наприклад, S JOIN SP являє собою тільки вираз) і, подібно будь-якому іншому висловом, визначає лише деяке значення (яке в даному конкретному випадку виявилося багато в чому подібним поточному значенню змінної відносини постачальників)

Нижче наведено ще один приклад (в якому цього разу застосовується множинне перейменування)

Слід зазначити, що завдяки наявності оператора RENAME в реляційної алгебри,

Р RENAME (PNAME AS PN, WEIGHT AS WT)

Це вираз є скороченням для наступного виразу (Р RENAME PNAME AS PN) RENAME WEIGHT AS WT Результат його застосування може виглядати так, як показано нижче

на відміну від мови SQL, немає необхідності застосовувати імена атрибутів, уточнені за допомогою точки, такі як S S # (і фактично такі імена не підтримуються)

Джерело: Дейт К Дж, Введення в системи баз даних, 8-е видання: Пер з англ – М: Видавничий дім «Вільямс», 2005 – 1328 с: Ил – Парал тит англ

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*