3.6: Резюме та подальше читання
- Page ID
- 66387
Вітаємо з проходженням однієї з найдовших глав книги! Просимо вибачення за довжину, але в цій главі було багато роботи. Зокрема, він запровадив «велику трійку» теорії категорій — категорії, функтори та природні перетворення, а також обговорили ад'юнкції, обмеження та дуже коротко коліміти.
Це дійсно зовсім небагато матеріалу. Більш докладно з усіх цих предметів можна звернутися до будь-якої стандартної книги з теорії категорій, яких існує безліч. Біблія (стара, важлива, насіннєва, і вимагає від священика пояснити це) є [Mac98]; ще один ретельний вступ - [Bor94]; логічна перспектива дається в [Awo10]; перспектива інформатики дається в [BW90] і [Pie91] і [Wal92]; студенти математики, ймовірно, повинні читати [Lei14] або [Rie17] або [Gra18]; a загальна аудиторія може починатися з [Spi14a].
Ми представили категорії з точки зору бази даних, тому що дані є досить ubiq- uitous в нашому світі. Схема бази даних — тобто система блокувальних таблиць може бути захоплена категорією C, а заповнення її даними відповідає функтору C → Set. Тут Set - це категорія множин, мабуть, найважливіша категорія для математиків.
Перспектива використання теорії категорій для моделювання баз даних була відкрита кілька разів. Здається, вперше обговорювалося різними авторами приблизно в середині 90-х [IP94; CD95; PS95; TG96]. Боб Розбрук та співробітники взяли його набагато далі в серії документів, включаючи [FGR03; JR02; RW92]. Більшість таких авторів схильні орієнтуватися на ескізи, які є більш виразними категоріями. Співак знову відкрив цю ідею зовсім трохи пізніше, але зосередився на категоріях, а не ескізах, щоб мати всі три функції міграції даних, σ,; див. [Spi12; SW15b]. Версія цієї історії, представлена в розділі, включаючи білі та чорні вузли в схемах, є частиною більшої теорії алгебраїчних баз даних, де до бази даних приєднана мова програмування, така як Java або Haskell. Технічні деталі опрацьовані в [Sch+17], а його використання в проектах інтеграції баз даних можна знайти в [SW15a; Wis+15].
Перш ніж покинути цю главу, ми хочемо підкреслити дві речі: умови узгодженості та універсальні конструкції.
Умови узгодженості. У визначеннях категорій, функторів та природних трансформацій ми маємо дані (індексуються за допомогою (i)), які потрібні для задоволення певних властивостей (індексуються за допомогою (a)). Дійсно, для категорій йшлося про асоціативність та єдність композиції, для функторів — про повагу до складу та ідентичностей, а для природних трансформацій — умовою природності. Ці умови часто називають умовами когерентності: ми хочемо, щоб різні структури згуртувалися, добре працювали разом, а не плавали навколо неприв'язаних.
Розуміння того, чому ці конкретні структури та умови узгодженості є «правильними», є більшою наукою, ніж математикою: ми емпірично спостерігаємо, що певні комбінації призводять до ідей, які є широко застосовними, а також сильно складними. Тобто ми задовольняємося умовами узгодженості, коли вони призводять до прекрасної математики вниз по дорозі.
Універсальні конструкції. Універсальні конструкції є однією з найважливіших тем теорії категорій. Грубо кажучи, один надає певну форму в категорії і каже «знайди мені найкраще рішення!» І теорія категорій повертається і каже: «Ви хочете, щоб я наблизився зліва чи справа (коліміт або межа)?» Ви відповідаєте, і або є найкраще рішення, або немає. Якщо є, це називається (co) межа; якщо немає, ми говоримо «межа (co) не існує».
Навіть міграція даних підходить для цієї форми. Ми говоримо «знайти мені найближчу річ в D, яка відповідає моєму C-екземпляру, використовуючи мій функтор F: C → D.» Насправді цей підхід, відомий як розширення Kan, підпорядковує інших. Один з двох засновників теорії категорій, Сондерс Мак Лейн, має розділ у своїй книзі [Mac98] під назвою «Усі поняття є розширеннями Кан», велике твердження, ні?