Кондибас (kondybas) wrote,
Кондибас
kondybas

Змучене

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

Перше, що зустрічається в трьох випадках з чотирьох, це принципова нездатність усвідомити, що бази даних зкладаються не з таблиць, а з множин. Таблична форма представлення використовується лише тому, що уся механіка алгебри множин реалізована через емуляцію множин списками. Зрештою, сучасний стан інформаційних технологій і не дозволяє людству обробляти множини саме, як множини. Ми не можемо з множини усіх елементів миттєво висмикнути той, що має певні задані характеристики. Але ми можемо виконати пошук у дереві (складному списку) індекса і зробити вигляд, ніби це і є "fetch from set". Втім, таблична метафора для БД призводить часом до таких рішень, що хочеться висмикнуть розробнику ноги, і тими ногами дати по голові. Щоб не мучився.

Друге, що зустрічається у 9 випадках з 10, це нерозуміння того, що індекси взагалі не мають жодного відношення до БД. Це милиці, якими ми підпираємо свою нездатність оперувати множинами напряму. І що в теорії БД немає жодного теоретичного обгрунтування для використання чи НЕвикористання того чи іншого індексу. Не дивно, що 9/10 усіх проблем з продуктивністю БД коріниться саме у невмінні доточити до емулятора множин належні милиці. Бо тут треба читати не Кодда/Дейта, а Кнута.

Третє, про що взагалі не здогадується ніхто, це пряме рідство принаймні SQL-like БД з категоричними силогізмами імені Арістотеля. Дві тисячі років тому в Арістотеля вистачило терплячки проаналізувати усі 256 можливих джойнів і виділить з них 15, що мають сенс. Трошки пізніше прийшло розуміння важливості непорожньості множин, і через екзистенціальний імпорт додали ще 9 штук. Якщо джойн не має відповідника серед оцих 24 силогізмів, то він хибний. Якщо силогізм містить екзистенціальний імпорт, то і джойн мусить його містити.

Оці три моменти роблять майже фізично болючим спілкування з "колегами". Я тепер розумію, звідки стирчать вуха отих всіх NOSQL-рішень типу "ключ-значення". Простіше зробить неефективного та вбогого костиля, ніж втовкмачувати в голови розробників містичні таємниці РСУБД.
Subscribe
  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 16 comments