Інформаційні об'єкти або причина одного омани

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





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

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

Нагадаю, що ми працюємо в 4-Д просторі, де об'єкти існують у часі, а час не існує без об'єктів. Прикладом інформаційних об'єктів можуть бути Договір, Квиток, Рекламний щит, Купюра, Книга, Електричні напруги на виводі контактної групи, Виголошена промова, Фільм. Наприклад, мова — це звукові коливання, тому теж є фізичною 4-Д об'єктом. З кожним роком кількість фізичних об'єктів, які були створені з єдиною метою — нести інформацію, стає все більше і більше. У первісному суспільстві кількість інформації, переданої від суб'єкта до суб'єкта, було невеликим. Зараз це величезний потік. Однак навіть зараз природа інформаційних об'єктів для багатьох залишається таємницею. Я пропоную спробувати розібратися з цим питанням.

У світі ми працюємо виключно з інформаційними об'єктами, які є лише уявлення моделей, але не самі моделі. Це відмінність ввів у вживання стандарт ISO 15926, щоб розрізнити модель в головах від її подання у вигляді матеріального носія. Хоча дуже часто модель в головах і інформаційний об'єкт ми не розрізняємо і називаємо одним ім'ям — модель.

Наприклад, купюра — є інформаційний об'єкт, який покликаний зберігати інформацію про те, що може собі дозволити зробити власник цієї купюри. І це не обов'язково можливість здійснювати покупку товару в магазині. Це також може бути можливість здійснювати якісь інші дії. Інформація про те, що може дозволити собі власник існує у нас в головах, сама купюра — лише представляє цю інформацію у вигляді матеріального об'єкту. Сама папірець у відриві від соціальної угоди з її приводу не має ніякої цінності. Для того щоб купюра мала цінність, повинна існувати якась загальновизнана модель в головах людей, які становлять певну соціальну групу. В цьому проявляється її інформаційна природа. З іншого боку, сама папірець — є фізичний об'єкт. Ця папірець цілком може стати причиною загибелі мухи, якщо скористатися купюрою як мухобійкою. До речі, тоді папірець виконає роль функціонального об'єкта мухобойка. Це буде означати, що одні й ті ж атоми паперу в один і той же час виконували роль та інформаційного об'єкта і функціонального. Але це ще не все. Нехай у вас є купюра і нехай ця купюра порвалася. Ви йдете в банк, і вам дають взамін втратила свій зовнішній вигляд купюри нову купюру. Інформація про те, що дозволено Вам, не змінилася. Носій цієї інформації змінився. Отже, багато інформаційних об'єктів можуть представляти одну модель.
З усім цим перетином об'єктів повинна була впоратися логічна парадигма, яка прийшла на зміну Аристотелівської логіки.

Інший приклад. Нехай є домовленість між двома юридичними особами. Моделлю цієї домовленості є модель в головах у тих, хто брав участь у досягненні цієї домовленості. Поданням цієї моделі є паперовий документ, на якому стоять підписи посадових осіб. Таких паперових документів може бути безліч: як мінімум два — по одному на кожну сторону. Питання: ці два паперових документа є один об'єкт, або два? Питання, що здається простим, виявляється дуже складним для сучасних аналітиків. Ми повернемось до нього трохи пізніше.
Що зберігається в базі даних?
Інформаційний об'єкт — це об'єкт, який зберігає інформацію про об'єкти (у тому числі про інформаційні об'єктах). В базі даних зберігаються тільки інформаційні об'єкти. Ці об'єкти є об'єктами у вигляді намагнічених доменів, наприклад. Вони покликані зберігати інформацію про інші об'єкти. Про що зберігають інформацію ті об'єкти, які в базах даних називаються договір і накладна? Про договорах і про накладних? Тоді це буде означати, що в системі зберігаються інформаційні об'єкти, що зберігають інформацію про інших інформаційних об'єктах — договорах, накладних. Або про реальні домовленості і про реальні поставки? Тоді це буде означати, що в системі зберігаються інформаційні об'єкти, що зберігають інформацію про реальні об'єкти: договори поставки. Про що вони насправді зберігають інформацію? Розібратися в цих питаннях дуже непросто. Можливо, в одній із статей я розповім про те, як інформація про різних частинах предметної області, перемішуючись з інформацією про інших її частинах та інформацією про інформаційні об'єкти, «розмазується» по структурі даних. І про причини, за якими це відбувається.

4 моделі для створення інформаційного об'єкта
Давайте подивимося, які моделі нам потрібні для створення моделі домовленості (у себе в голові).

  1. Модель домовленості спирається на галузеві норми і правила. У цих правилах зафіксовані ті терміни, які необхідно використовувати при створенні моделі домовленості, ті події, які необхідно обумовити сторонам (поставку деталей), і ті події, які настануть незалежно від того, будуть вони прописані в договорі або немає (підписання накладних, наприклад). Ці норми — модель 1 (її ще можна назвати контекстом). Цими моделями володіють юристи і бухгалтери. Представлені вони в законодавчих актах.
  2. На основі моделі 1 ми створюємо модель 2 — модель самої домовленості.
  3. Тепер необхідно модель домовленості зафіксувати у вигляді подання, тобто, на матеріальному носії. Які моделі необхідно знати, щоб зробити це? Для цього нам знадобиться мати модель, яка описує, як модель домовленості повинна бути представлена. Цю інформацію можна знайти в спеціальній нормативній документації. Це — модель 3.
  4. І четверте — треба знати, як ми будемо розрізняти договору, які моделюють одну домовленість (Різні примірники договору) — модель 4.
Маючи ці чотири моделі, ми можемо створити конкретне уявлення моделі 2 конкретної домовленості (примірник договору). Використовувані терміни, зв'язки між ними, події за замовчуванням будуть взяті з моделі 1, юридичні реквізити та інші дані — з моделі 2, структура тексту та його оформлення — з моделі 3, облік підписаних примірників — з моделі 4. Разом 4 моделі необхідні, щоб створити один примірник договору. Дві з них належать до моделі предметної області. А дві — до подання моделі. Таке поділ на моделі є універсальним для подання будь-якого інформаційного об'єкта. Якщо у вас є інформаційний об'єкт, шукайте 4 моделі, які лежать завжди десь поруч.

Різниця між термінами об'єкт і екземпляр об'єкта
Так, все-таки, різні папірці з печатками — це різні об'єкти чи однакові? Останнім часом я чую таку відповідь: це один об'єкт, а екземпляри цього об'єкта — різні! Причину, по якій відбулася деформація, яка призвела до такого роду відповіді, нам слід з'ясувати.
Історія:

Сидить навпроти мене бізнес-аналітик і просто людина з вулиці. Я показую аналітику операцію: підношу до рота чашку чаю і роблю ковток. Питаю аналітика: «чи Можна назвати це операцією?» — Так, звичайно. Тоді я повторюю ті ж дії і питаю аналітика: чи Можна назвати і це дію операцією? Відповідь ствердна. Я питаю: а це різні операції, або одна? Аналітик бадьоро відповідає: одна, звичайно! Операція одна, а екземплярів її багато. Людина з вулиці трохи посунув брову. Тоді я питаю далі: Перед нами 100 спортсменів всі як один в одних трусах і майках. Це один спортсмен, чи багато спортсменів? Відповідь: багато спортсменів? А що в них спільного питаю я. Зовнішній вигляд у них — загальний, була відповідь. Добре, а чому тоді операція-то одна? Аналітик задумався. Я пояснюю: операцій багато, але зовнішній вигляд у них однаковий! Правильно? Сумніви… Тоді я продовжую: у них загальний опис, а операції різні. Ну звичайно! Опис операції — одне, а операцій, які відповідають цьому опису — багато.
Якщо задуматися, то відповідь аналітика сторонньому спостерігачеві здається безглуздим. Перевірено! Однак до цієї трактуванні часто вдаються сучасні аналітики, і це стало схоже на оману, яке прийняло масовий характер. Я все частіше чую теза про те, що треба розрізняти терміни договір та примірник договору, наприклад. При цьому автори цих тез так і не змогли мені пояснити, чому ці терміни відрізняються. Вони натякали, що два терміни вказують на зовсім різні об'єкти, але в якій парадигмі терміни примірник договору та договір вказують на різні об'єкти, мені так і не сказали. Я вважаю це дуже серйозною помилкою та спробую пояснити причини його виникнення.

В логіці Аристотеля, у якого ми запозичили слово екземпляр, терміни риба екземпляр риби — це позначення одного і того ж об'єкта. При цьому я свідомо не кажу, що примірник — це термін. Слово екземпляр в логіці Арістотеля невіддільне від другого слова, утворюючи разом з ним неподільний термін. Однак, за межами логіки Аристотеля терміни риба екземпляр риби, вказуючи нам на один і той же об'єкт (рибу), тим не менш, відрізняються один від одного. Питання чому?

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

Нехай є вислів: «я тримаю примірник книги «Три мушкетери». Воно інтерпретується наступним чином:

  • Є тип книг «Три мушкетери», і є конкретний екземпляр цього типу об'єктів — конкретна книга. Слово примірник дає нам сувору вказівку на використовуваний нами контекст. Контекстом буде логіка Аристотеля, або філологи використовують термін интенсиональный контекст.


Проте це висловлювання може бути скорочено до наступного: «Я тримаю книжку «Три мушкетери». Це висловлювання може інтерпретуватися вже двома способами:

  • Можна сказати, що об'єкт, який я тримаю в руках, має властивість. Це властивість об'єкта бути книгою під назвою «Три мушкетери (логіка Аристотеля, або интенсиональный контекст). Дана трактування збігається з трактуванням тієї, яку породжує термін примірник книги.
  • А можна сказати, що перед нами об'єкт (елемент) класу книг «Три мушкетери». Такий вислів говорить про те, що ми перебуваємо в рамках логічної парадигми або, як кажуть філологи, экстенсиональном контексті.
Висновок: Термін ЕКЗЕМПЛЯР ОБ'ЄКТА вказує нам на интенсиональный контекст явно, а термін ОБ'ЄКТ передбачає, що контекст ми вільні вибрати самі (интенсиональный, або экстенсиональный).

Один об'єкт, чи багато?
Повернемося до питання про те, що є різні папірці з написом договір? Відповіді, як ми бачили, можуть бути такими:

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

Мені доводиться проводити екскурс в історію і пояснювати аналітику, що термін примірник пов'язаний з терміном тип. І що термін примірник книги має таку трактування: існує тип книг, і є конкретний екземпляр цього типу книг, — конкретна книга. І немає такого трактування: є об'єкт книга, і є її примірник.
Нагадаю: ми пам'ятаємо, що тип у Аристотеля — це набір параметрів. Примірник — це значення цих параметрів.

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

Ми можемо вважати, що існують одночасно два терміна: примірник договору купівлі-продажу та примірник договору купівлі-продажу від 30-го червня. Зрозуміло, що одна і та ж папірець може бути екземпляром договору купівлі-продажу та примірником договору від 30-го червня. Це означає, що ми допустили існування двох типів, до яких може відноситися один об'єкт реального світу! Але цей парадокс був одним із тих, який у результаті привів до появи теорії множин. Аристотелевская модель не змогла дати відповідь на множинність типів.

/>
Можна переформулювати питання і так: якими параметрами володіє той тип договорів, на який посилається аналітик, вживаючи термін примірник договору? Тоді я використовую наступний сценарій опитування:
Далі я ставлю другий питання: якими параметрами володіє той тип договорів, про який згадав аналітик, пропонуючи на вибір:

  1. Перший тип відноситься тільки до тих об'єктів, які зафіксували інформацію про конкретної домовленості. Він містить параметр «Чий примірник?» (підрядника, замовника). Приклад використання даного типу: примірник договору від 30-го квітня.
  2. Другий містить параметри: дата підписання, предмет угоди, юридичні особи, і так далі. Приклад використання даного типу: примірник договору купівлі-продажу.
Якщо аналітик дає перший відповідь, то я ставлю запитання: чи допускає він існування такого типу договорів, який включає в себе всі примірники всіх договорів купівлі-продажу? Якщо так, то, як ми відрізняємо в розмові, про якому типі йде мова? І виходить, що один і той же екземпляр може належати двом різним типам договорів? Але це модернізація Аристотелівської логіки, про яку ми нічого не знаємо. Виходить, що об'єкт може бути одночасно і машиною і кораблем. На це логіка Аристотеля не змогла дати відповідь, і тому нам довелося винаходити теорію множин.
Якщо аналітик відповідає другим чином, я ставлю друге питання: чи Містить згаданий тип параметр «Чий примірник?» Відповідей може бути два:

  1. Так, містить
  2. Ні, не містить. Це найпоширеніший відповідь, оскільки у всіх системах документообігу та обліку саме цей тип активно підтримується.
Якщо я отримую перший відповідь, то я задаю питання: а що є той тип, примірником якого є примірник договору від 30-го червня?
Якщо я отримую другу відповідь, то я уточнюю, а що є об'єкти, які містять цей параметр? Відповідь ви чули: один об'єкт, а екземплярів його багато, що повертає нас до питання про логічність та коректності такої тези.

Приклад представлення моделі предметної області
Давайте подивимося, як зазвичай аналітики моделюють стандартні предметні області. Наприклад, таку:



Ми бачимо, що всі безліч озброєнь ділиться на класи. Кожен клас озброєнь, у свою чергу, поділяється на підкласи. Ми бачимо, що клас підводних човнів — є підмножина класу озброєнь, а клас Акула — є підмножина класу підводних човнів.
Часто зустрічається реалізація цієї моделі у вигляді таблиць така:



Таблиця 1 моделює підкласи класу зброю. Таблиця 2 — підкласи класу підводних човнів. Зв'язок між таблицею 1 і таблиці 2 моделює спеціалізацію озброєнь. Таблиця 1 моделює підводні човни, а зв'язок між таблицею 2 і таблицею 1 моделює класифікацію підводних човнів. (Терміни спеціалізація і класифікація взяті з логічної парадигми і не випадкові). Зрозуміло, що одного підкласу озброєнь «підводний човен» відповідає багато підкласів класу підводних човнів і зрозуміло, що одного підкласу підводних човнів може належати багато підводних човнів, що позначено «Воронячої лапкою» на кінці зв'язку між таблицями. Прийнято вважати, що структура таблиць і є модель предметної області, але, як ви бачите, інформації в структурі таблиць набагато менше, ніж у моделі предметної області.
Ця модель дуже схожа на інші, подібні до неї:



Модель предметної області в парадигмі Аристотеля
Згадуючи те, про що я говорив у статті про те, що в Аристотелівської логіки таблиця — є опис типу об'єктів, а запис у таблиці — це опис об'єкта, намалюємо модель предметної області в парадигмі типів та екземплярів. (У цій парадигмі найчастіше відбувається обговорення предметної області та іменування таблиць). Для цього застосуємо формальний підхід, який я озвучив в статті. Тобто таблиця — позначає тип об'єктів, а записи в ній — екземпляри.



Отримана модель виглядає так:



Таблиця 3 моделює тип підводних човнів. Запис у таблиці моделює примірник підводного човна. Зв'язок із записом в таблиці 2 моделює той факт, що підводний човен належить певному класу підводних човнів. Але з таблиці 2 ми не можемо визначитися. Що за тип об'єктів моделює ця таблиця? Примірник чого є запис у цій таблиці? Термінів у Аристотелівської логіки для цих сутностей не передбачено. Ми можемо спробувати придумати самі назву того типу об'єктів, які зберігаються в таблиці 2, наприклад: тип класів. Тоді Клас Акула буде екземпляром класу. (Зауважу, що екземпляр класу вказує на клас, а не на об'єкт класу, як деякі могли б подумати. На об'єкт класу вказує ЕЛЕМЕНТ КЛАСУ, а не ЕКЗЕМПЛЯР КЛАСУ!). Отримана модель виглядає тепер так:



Проблема в тому, що одночасно в одній моделі ми бачимо і типи об'єктів і класи. (Я іноді зустрічав таблиці, озаглавлені: типи класів, види типів, видів класів і так далі...) Треба розуміти, що типи існують тільки в Аристотелівської логіки, а класи — тільки в логічній. І вони не змішуються. Тому клас Акула нам слід перейменувати тип підводних човнів Акула. Риторика була б така: разом з примірником підводного човна у нас з'являється примірник Акули, де під Акулою розуміється тип підводних човнів. Однак у даній статті я пропоную зупинитися і подивитися, що буде з іншими моделями — собак і зварних швів.

Обмеження парадигми Аристотеля
У випадку з собаками таблиця 2 — є опис типу порід. І у випадку зі швами — типу типів. І ось тут засідка виникла. Уявляєте: на нараді аналітиків ми обговорюємо структуру таблиць і у нас виникають терміни: тип типів. Це мало хто зрозуміє. Це занадто складно для повсякденної мови і буденного розуміння. Особисто я, якщо зустрічав такий термін, то вкрай рідко. Проблема в тому, що Арістотель не пропрацював термінологію для опису структур складніше класів, наприклад, класу класів. Це зробила теорія множин багато пізніше. Але наші аналітики поки не знають про існування теорії множин і намагаються викрутитися в рамках Аристотелівської логіки. Для цього вони змінюють риторику. Нова риторика була запозичена з опису інформаційних об'єктів. В описі інформаційних об'єктів задовго до виникнення проблеми з типами типів, було знайдено «рішення». «Рішення» виникло саме собою, оскільки ніхто не замислювався над цим.

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



У такій моделі шов №234 можна назвати двома способами: примірник зварного шва і примірник стикового шва. Обидва ці терміна є коректними термінами, і пояснити їх зручно в рамках теорії множин. Зрозуміло, що шов №234 належить класу зварних швів. Зрозуміло, що шов №234 належить також класу стикових швів, є підкласом зварних швів:



У структурі даних це відображено так: запис в таблиці «зварні шви» говорить нам про першої класифікації об'єкта, а зв'язок із записом в таблиці «типи зварних швів» говорить нам про другий класифікації.
Зауважу, що дві різні форми моделювання однієї і тієї ж зв'язку «класифікація», яка є між швом і класом зварних швів і між швом і класів стикувальних швів, говорить нам про те, що моделювання за допомогою таблиць не створено для коректного моделювання предметної області.
Але от пояснити, що тип стикових швів є примірник типів зварних швів, стає ніяково.

«Рішення»
Щоб позбутися від таких хитромудрих термінів, іноді малюють ось таку структуру:



Тепер у нас в розмовній мові все нормально. Можете перевірити.
Конструкція на перший погляд здається розумною, але рівно до тих пір, доки не намалюємо модель термінів:



Тепер у нас з'явилося кілька сюрпризів:

  • Запис «Стиковий шов» моделює (сюрприз!) ні, не шов! Він моделює цілий клас швів!
  • Таблиця ЗВАРНІ ШВИ містить (сюрприз!) не інформацію про зварних швах, ні! Вона містить інформацію про клас зварних швів!
  • ТИП зварних швів не має ніякого відношення до типу зварних швів.
  • ПРИМІРНИК зварного шва — не є примірник зварного шва.
  • ПРИМІРНИК стикового шва — не є примірник стикового шва.
  • Два терміни «Екземпляр зварного шва» і «зварний шов» до цього моменту вказували на один об'єкт — зварний шов. Однак тепер я іноді чую від деяких аналітиків, що треба розрізняти зварний шов і примірник зварного шва, як ніби це різні речі!
Така конструкція є самопальної і помилковою. Причина в тому, що вона не спирається ні на одну з онтологій і являє з себе підміну понять. Як я вже говорив, у парадигмі Аристотеля терміни примірник стикового шва і стиковий шов вказують на один і той же об'єкт реального світу — на конкретний стиковий шов. В намальованій структурі об'єкт довідника Стиковий шов вказує не на об'єкт, а на клас об'єктів!
У результаті деяка кількість аналітиків починають мислити спотвореним способом: вони перестають розрізняти різні об'єкти, називаючи їх одним терміном: Стиковий шов. Риторика їх наступна: є один об'єкт «Стиковий шов» і є різні його ПРИМІРНИКИ. У них у свідомості є один спортсмен і безліч його ПРИМІРНИКІВ! Треба розуміти, що під терміном ПРИМІРНИК ці аналітики розуміють щось таке, що не було відомо ні Аристотеля, ні кому б то не було ще. Це самопальний термін, який виглядає жахливо з будь-яких точок зору: з логічної та лінгвістичної точок зору. Тобто, ПРИМІРНИК стикового шва для них означає: є об'єкт СТИКОВИЙ ШОВ і є його ПРИМІРНИКИ. Добре, що Аристотель цього не чує!

Інший приклад такого «Рішення»
Тепер наведемо приклад подібного роду моделювання, яке ми зустрічаємо всюди. Візьмемо наші улюблені договору. У будь-якій системі ми знайдемо такий довідник:



Кожна запис в цьому довіднику моделює… А що вона моделює? Назва передбачає, що запис у цьому довіднику є договором, або моделює договору. Запис в базі не містить підпису сторін, не може бути договором. Тому тут зберігається інформація про договори, тобто, інформація про інших інформаційних об'єктах. Ми знаємо, що один запис у базі даних відповідає безлічі екземплярів договору від 30-го червня, відрізняються тим, кому вони належать: Замовника або Підрядника. Давайте спробуємо намалювати модель термінів:



Ми бачимо ту саму картину, яку аналізували раніше. Ось звідки прийшли до нас поняття об'єкт і його примірник! З некоректного моделювання інформаційних об'єктів! Ми бачимо в цій моделі різні екземпляри одного договору. Що і потрібно було показати. Тільки в некоректній моделі можуть народитися некоректні терміни: об'єкт і його примірник.
Причина такого роду помилок криється в незнанні логіки й в неправильному розумінні суті інформаційних об'єктів.

Правильне рішення
Давайте застосуємо правильний підхід до моделювання договорів і подивимося, як повинна виглядати структура даних несуперечливим чином з точки зору Аристотелівської логіки (не рахуючи типів типів і наявність множинності типів).



Отже, в базі даних в таблиці Договору, виявляється, зберігалася інформація про тип договорів, а не про договір! Зауважте, існує стійка думка, що ми зберігаємо інформацію про інформаційному об'єкті, а не про безліч інформаційних об'єктів! Довідники, з якими ми працюємо кожен день, так і називаються: Договори, Накладні, Рахунки-фактури, і так далі. А не типи договорів, типи накладних та типи рахунків-фактур. Це призвело до масового помилці, яке проявилося зараз в переконаності багатьох аналітиків, що існує об'єкт і є його примірник. Згадайте, стандарти моделювання бізнес-процесів! Це оману проникло і в стандарти!
А як же тоді називають довідник, у якому зберігається інформація про договори (в Таблиці 3, якщо дотримуватися в нашій практиці позначень)? Я бачив багато назв, серед яких: Підписані договори (ніби є непідписані), Примірники договорів (ніби є об'єкт і його примірники), Розіслані договору, Сформовані договору. Кожен, хто стикався з необхідністю врахування реальних інформаційних об'єктів, придумує свої назви.
Нарешті, ми прийшли до відповіді на питання, заданому раніше: різні папірці з печатками і підписами — це різні об'єкти, чи це різні екземпляри? Відповідь очевидна — це різні об'єкти! Ми бачимо, що існуюча практика іменування таблиць не витримує ніякої критики. Тепер, коли ми з'ясували, що у нас кожен документ — це окремий документ, нам належить побудувати коректну модель цих об'єктів. Щоб зрозуміти, як це зробити, не исковеркав мова (породжуючи види, типи, класи, роду та інше), нам доведеться звернутися до теорії множин.

Рішення логічної парадигми
В теорії множин є три класи об'єктів: об'єкти, класи і класи класів, а також класи відносин між об'єктами і класами. Всіх можливих конструкцій я перераховувати не буду, але по мірі необхідності буду давати пояснення.
Нехай у нас є безліч всіх договорів (в сенсі кожен папірець — окремий договір). Кожен договір належить до класу договорів.



Тоді кажуть, що договір пов'язаний з класом договорів зв'язком класифікація.
Клас договорів купівлі-продажу є підмножина всіх договорів.



Зв'язок між класом всіх договорів і класом договорів купівлі-продажу — називається спеціалізація.



Клас договорів купівлі-продажу, клас договором оренди та ін. — є об'єкти множини, яке є безліч всіх підмножин класу договорів.



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



Тепер ми готові намалювати структуру таблиць і дати їм імена.
Модель предметної області логічної парадигми виглядає так:



А структура таблиць, що реалізує цю модель, така:



Як це виглядатиме на практиці?

  • Таблиця 3 моделює клас договорів і містить моделі договорів.
  • Таблиця 2 моделює клас класів договорів, що належать до жодної операції, та містить моделі класів договорів, що належать до жодної операції.
  • Зв'язок між записами таблиць моделює зв'язок класифікація між класами договорів, що належать до жодної операції, та договорами.

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

Щоб завершити розмову про інформаційні об'єктах і про їх моделюванні, я пропоную звернути увагу на «розмазаність» інформації про об'єкт предметної області по структурі даних. Це дає нам підстави говорити, що немає однозначної відповідності між об'єктами предметної області та об'єктами в системі. Більш того, часто один запис у таблиці одночасно зберігає дані про об'єкт та про клас об'єктів! Всього цього позбавлена логічна модель даних. Тому вона іноді називається моделлю даних в останній нормальній формі.

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

Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.