ПОРІВНЯННЯ ВНУТРІШНІХ І ЗОВНІШНІХ предикатів

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

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

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

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

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

Постачальник з вказаним номером постачальника (S #) працює за контрактом, має вказане імя (SNAME) і зазначений статус (STATUS), а також знаходиться в зазначеному місті (CITY) Крім того, значення його статусу має перебувати в межах від 1 до 100 включно і має дорівнювати 20, якщо містом є Лондон До того ж ніякі два різних постачальника не мають один і той же номер постачальника

Але для зручності подальшого обговорення замінимо цей предикат простішим,

наведеним нижче

Постачальник S # працює за контрактом, має імя SNAME, має статус STATUS і знаходиться в місті CITY

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

Тепер відзначимо, що наведене вище твердження дійсно є предикатом, оскільки воно має чотири формальних параметра (S #, SNAME, STATUS і CITY), відповідні чотирьом атрибутам змінної отношенія9, і після підстановки замість

8 Зовнішні предикати вже розглядалися в розділах 3 і 6, але тоді вони іменувалися просто предікей тами Досі фактично за замовчуванням термін предикат використовувався у всій даної книзі як позначення саме зовнішнього предиката Єдиним важливим виключенням було обговорення опе рації обмеження, наведене в розділі 7, де умова обмеження було названо предикатом так воно і є, але це – не зовнішній предикат

9 У цьому викладі термін формальний параметр використовується трохи в іншому сенсі, ніж у розділах 93 і 94 У цих розділах формальні параметри (і відповідні фактичні параметри) позначали цілі відносини, а в даному викладі вони позначають окремі атрибути

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

{ S# S#(S1), SNAME NAME(Smith), STATUS 20, CITY London }

Якщо цей кортеж присутній у змінній відносини S в деякий момент часу, то слід вважати достеменним фактом, що в даний момент існує постачальник, який працює за контрактом, який має номер постачальника s1, імя Smith, статус 20 і знаходиться в Лондоні Взагалі кажучи, справедлива наступна формула:

IF   (   s   S   )   =  TRUE  THEN XPS   (   s   )   =  TRUE

У цій формулі застосовуються описані нижче позначення ■

s – це кортеж в такій формі:

{   S#   s#,   SNAME  sn,   STATUS   st,   CITY  sc   }

Тут s # – значення типу S #, sn – значення типу NAME, st – значення типу

INTEGER і sc – значення типу CITY

■ XPS – зовнішній предикат для постачальників

■ XPS (S) – це висловлювання, отримане шляхом конкретизації предиката XPS значеннями формальних параметрів s # = s #, SNAME = sn, STATUS = st і CITY = sc

Ho як було зазначено в розділі 6, стосовно до зовнішніх предикатам можна прийняти більш широкі допущення, ніж до внутрішніх Говорячи точніше, по відношенню до них приймається припущення про замкнутість світу, в якому стверджується, що якщо деякий кортеж, допустимий за всіх іншим ознаками, не присутній у змінній відносини в деякий момент часу, то на підставі прийнятого угоди відповідне висловлювання в даний момент розглядається як помилкове Наприклад, припустимо, що в деякий конкретний момент часу у змінній відносини S не присутній наступний кортеж

{ S# S#(S6), SNAME NAME(Lopez), STATUS 30, CITY Madrid }

У цьому випадку даний факт слід розглядати таким чином, що в даний момент не існує працює за контрактом постачальника з номером постачальника S6, який має імя Lopez, статус 30 і знаходиться в Мадриді Взагалі кажучи, справедлива наступна формула:

IF ( s € S ) = FALSE THEN XPS ( s ) = FALSE

У більш короткій формі вона виглядає таким чином: IF NOT {s € S) THEN NOT XPS (s)

На підставі викладеного вище можна вивести таку формулу:

s e  s XPS   (  s  )

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

Джерело: Дейт К Дж, Введення в системи баз даних, 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>

*

*