ДОДАТКОВА ІНФОРМАЦІЯ про уточнення З ДОПОМОГОЮ ОБМЕЖЕНЬ

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

“Кольорові кола є окремим випадком кіл в цілому) Приклади такого загального характеру часто можна зустріти в літературі Але слід зазначити, що, на думку автора, такі приклади, з деяких важливих причин, є вкрай непереконливими і навіть вносять плутанину А саме, щодо, скажімо, даного конкретного випадку можна відзначити, що фактично не має сенсу розглядати кольорові кола як деякий окремий випадок кіл в цілому Зрештою, кольорові кола повинні за визначенням представляти собою зображення, можливо, на екрані дисплея, тоді як окружності в цілому не є зображеннями, а геометричними фігурами Тому видається більш розумним розглядати тип COLORED_CIRCLE не як підтип типу CIRCLE, а скоріше як повністю окремий тіп12 Цей окремий тип цілком може мати таке можливе подання, в якому один компонент відноситься до типу CIRCLE, а інший – до типу COLOR, але (ще раз відзначимо) він не повинен визначатися як підтип типу CIRCLE

Спадкування можливих уявлень

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

TYPE ELLIPSE ..

POSSREP {А .., В .., CTR ..}

TYPE CIRCLE ..

POSSREP { R .., CTR .. }

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

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

12 Безумовно, COLORED_CIRCLE може бути підтипом типу CIRCLE точно в такій же мірі, в якій він є підтипом типу COLOR (інакше кажучи, він аж ніяк не може бути підтипом типу CIRCLE)

13 Автор не розглядає їх під цим кутом у запропонованій ним формальної моделі це означає, що тут такі успадковані можливі уявлення не розглядаються як оголошені, по скільки таке твердження, що вони були оголошені, може призвести до протиріччя А саме, якби ми стверджували, що тип CIRCLE успадковує можливе подання типу ELLIPSE, то згідно [33] для цього треба було б, щоб операція привласнення псевдопеременной ТНЕ_А або ТНЕ_В для змінної оголошеного типу CIRCLE була б допустимою, а нам, безумовно, відомо, що справа йде інакше Тому твердження, що тип CIRCLE успадковує можливе подання типу ELLIPSE, – це просто манера висловлювання, яка не несе формального сенсу

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

Точне визначення поняття підтипу

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

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

TYPE ELLIPSE

IS PLANE_FIGURE

POSSREP {A LENGTH, В LENGTH, CTR POINT CONSTRAINT A> У}

TYPE CIRCLE

IS ELLIPSE

CONSTRAINT THE_A ( ELLIPSE ) = THE_B ( ELLIPSE ) POSSREP { R = THE_A ( ELLIPSE ) ,

CTR = THE_CTR ( ELLIPSE ) }

Як відомо, завдяки використанню уточнення за допомогою обмеження специфікація CONSTRAINT для типу CIRCLE гарантує, що еліпс зі значеннями а = b буде автоматично приведений до типу CIRCLE в результаті уточнення Але, повернувшись знову до прикладу звичайних кіл і кольорових кіл, ми не зможемо знайти таку специфікацію CONSTRAINT для типу COLORED_CIRCLE, яка аналогічним чином дозволила б привести звичайну окружність до типу COLORED_CIRCLE в результаті уточнення іншими словами, не існує можливості застосувати таке обмеження типу, виконання якого для даної конкретної окружності означало б, що розглянута окружність дійсно є кольоровий колом

Тому ще раз відзначимо, що більш обгрунтований підхід, мабуть, полягає в тому, що типи COLORED_CIRCLE і CIRCLE повинні розглядатися як повністю різні і, зокрема, тип COLORED_CIRCLE повинен розглядатися як має можливе подання, в якому один компонент відноситься до типу CIRCLE, а інший – до типу COLOR, тому може застосовуватися таке визначення

TYPE COLORED_CIRCLE POSSREP { CIR CIRCLE, COL COLOR } ..

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

розглянуте значення фактично є значенням типу T1(І повинно автоматично наводитися до типу T за допомогою уточнення) Тому припустимо, що T і T1-типи, а T – підтип типу т (фактично ми можемо припустити без втрати точності, що T є безпосереднім підтипом типу т) У такому випадку справедливі наведені нижче твердження

■ І тип т, і тип T , по суті, являють собою безлічі (іменовані множе ства значень), причому T є підмножиною множини т

■ Тому й тип т, і тип T мають предикати приналежності до безлічі тобто вони мають такі предикати, що деяке значення є елементом рассмат Ріва безлічі (і тому значенням розглянутого типу) тоді і лише то тоді, коли воно задовольняє розглянутого предикату Припустимо, що цими предикатами є, відповідно, P і Р .

■ Тепер відзначимо, що предикат Р за визначенням є таким предикатом, який може приймати значення TRUE тільки стосовно до тих визна ленним значенням, які фактично являють собою значення типу т Тому насправді цей предикат може бути сформульований в термінах властивостей значень типу т (а не в термінах властивостей значень типу T )

■ А предикат Р , сформульований в термінах властивостей значень типу т, є не чим іншим, як обмеженням типу, якому повинні відповідати значення типу T, для того щоб стати значеннями типу T . Іншими словами, будь-яке значення типу Т приводиться до типу T шляхом уточнення саме в тому випадку, якщо воно відповідає ог раничения P.

Тому автор стверджує, що уточнення за допомогою обмеження є єдиним концептуально виправданим засобом визначення підтипів Внаслідок цього автор оспорює можливість використання прикладів, подібних до наведеного вище, для доказу того, що COLORED_CIRCLE може бути підтипом типу CIRCLE

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

*

*