<?xml version="1.0" encoding="utf-8"?> 
<rss version="2.0"
  xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"
  xmlns:atom="http://www.w3.org/2005/Atom">

<channel>

<title>Математик среди биологов: заметки с тегом база данных</title>
<link>https://antonlyakh.ru/blog/tags/baza-dannyh/</link>
<description>Я немного умею складывать, но от вычитания у меня всегда кружится голова</description>
<author>Антон Лях</author>
<language>ru</language>
<generator>E2 (v3559; Aegea)</generator>

<itunes:owner>
<itunes:name>Антон Лях</itunes:name>
<itunes:email></itunes:email>
</itunes:owner>
<itunes:subtitle>Я немного умею складывать, но от вычитания у меня всегда кружится голова</itunes:subtitle>
<itunes:image href="" />
<itunes:explicit></itunes:explicit>

<item>
<title>Три вэ: векторные модели — визуализатор — веб-страница</title>
<guid isPermaLink="false">533</guid>
<link>https://antonlyakh.ru/blog/all/tri-v-vektornye-modeli-vizualiztator-veb-stranica/</link>
<pubDate>Wed, 24 Sep 2025 22:18:11 +0300</pubDate>
<author>Антон Лях</author>
<comments>https://antonlyakh.ru/blog/all/tri-v-vektornye-modeli-vizualiztator-veb-stranica/</comments>
<description>
&lt;p&gt;У меня накопилось несколько баз данных с векторными изображениями, Это векторные контуры створок диатомовых водорослей, крючков паразитических червей моногеней и векторные траектории движения динофлагеллят &lt;i&gt;Oxyrrhis marina.&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Базы лежат, пыляться и нет никакой нормальной возможности просмотреть их содержимое в онлайне. Отсюда и родилась идея о создании (универсального) веб-приложения для просмотра векторного содержимого баз.&lt;/p&gt;
&lt;p&gt;Назвал это проект «Три вэ».&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://antonlyakh.ru/blog/pictures/tri-v---nachalo-dark.png" width="800" height="80" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;Быстро сформулировал задачу и требования к ней.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Дано:&lt;/b&gt; несколько баз данных, содержащих векторные модели форм микроорганизмов, их частей и траекторий движения.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Необходимо:&lt;/b&gt; создать веб-приложения для онлайн просмотра векторных моделей.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Требования:&lt;/b&gt; базовое приложение имеет унифицированный интерфейс, который позволяет подключать любую из баз данных и предоставляет средства для просмотра моделей.&lt;/p&gt;
&lt;p&gt;Получилось очень куцо.&lt;/p&gt;
&lt;p&gt;Потом прогнал текст через нейросеть с просьбой добавить деталей.&lt;/p&gt;
&lt;p class="loud"&gt;Оказалось, что за простыми формулировками скрывается несколько неотвеченных вопросов и функций, которые я подразумеваю, но не актуализирую в явном виде.&lt;/p&gt;
&lt;p&gt;&lt;span id="ai-answer"&gt;Ниже — ответ нейросети.&lt;/span&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;Чтобы сделать требования более четкими и полными, предлагаю структурировать их по следующим категориям:&lt;/p&gt;
&lt;p&gt;&lt;b&gt;1. Общие требования&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Цель приложения:&lt;/b&gt; Разработать веб-приложение для онлайн-просмотра векторных моделей микроорганизмов, хранящихся в нескольких базах данных.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Целевая аудитория:&lt;/b&gt; Ученые, исследователи в области микробиологии, студенты (или уточнить).&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Ключевые функции:&lt;/b&gt;
&lt;ul&gt;
  &lt;li&gt;Подключение к различным базам данных с векторными моделями.&lt;/li&gt;
  &lt;li&gt;Просмотр моделей с минимальным набором функций (например, визуализация, масштабирование, вращение).&lt;/li&gt;
  &lt;li&gt;Возможность расширения функциональности (например, добавление аннотаций, фильтров, экспорта).&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;2. Функциональные требования&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Подключение к базам данных:&lt;/b&gt;
&lt;ul&gt;
  &lt;li&gt;Поддержка различных типов баз данных (например, SQL, NoSQL, файлы).&lt;/li&gt;
  &lt;li&gt;Унифицированный API или адаптер для подключения новых баз данных без изменения кода приложения.&lt;/li&gt;
  &lt;li&gt;Поддержка безопасного подключения (аутентификация, шифрование данных).&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Просмотр моделей:&lt;/b&gt;
&lt;ul&gt;
  &lt;li&gt;Визуализация векторных моделей в 2D/3D (указать форматы, например, STL, OBJ, или другие).&lt;/li&gt;
  &lt;li&gt;Интерактивные функции: вращение, масштабирование, панорамирование.&lt;/li&gt;
  &lt;li&gt;Отображение метаданных моделей (например, название микроорганизма, источник, описание).&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Расширяемость:&lt;/b&gt;
&lt;ul&gt;
  &lt;li&gt;Модульная архитектура, позволяющая добавлять новые функции (например, плагины для анализа моделей).&lt;/li&gt;
  &lt;li&gt;Поддержка новых форматов данных через конфигурационные файлы или API.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Дополнительные функции (если применимо):&lt;/b&gt;
&lt;ul&gt;
  &lt;li&gt;Фильтрация/поиск моделей по параметрам (например, тип микроорганизма, дата создания).&lt;/li&gt;
  &lt;li&gt;Экспорт моделей или их визуализаций (например, в PNG, PDF).&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;3. Нефункциональные требования&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Производительность:&lt;/b&gt;
&lt;ul&gt;
  &lt;li&gt;Поддержка загрузки моделей объемом до [указать объем, например, 100 МБ] за разумное время (например, &lt; 5 секунд).&lt;/li&gt;
  &lt;li&gt;Оптимизация для работы с большими наборами данных.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Совместимость:&lt;/b&gt;
&lt;ul&gt;
  &lt;li&gt;Поддержка современных браузеров (например, Chrome, Firefox, Safari, Edge).&lt;/li&gt;
  &lt;li&gt;Адаптивный дизайн для работы на десктопах и мобильных устройствах (или уточнить).&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Безопасность:&lt;/b&gt;
&lt;ul&gt;
  &lt;li&gt;Защита данных при передаче (например, HTTPS).&lt;/li&gt;
  &lt;li&gt;Контроль доступа к базам данных (например, через OAuth или токены).&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Масштабируемость:&lt;/b&gt;
&lt;ul&gt;
  &lt;li&gt;Возможность обработки подключения новых баз данных без значительных изменений в архитектуре.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Доступность:&lt;/b&gt;
&lt;ul&gt;
  &lt;li&gt;Поддержка стандартов доступности (например, WCAG 2.1).&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;4. Технические требования&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Технологический стек &lt;/b&gt;(рекомендации, если не указан):
&lt;ul&gt;
  &lt;li&gt;Фронтенд: JavaScript/TypeScript с использованием библиотек для 3D-визуализации (например, Three.js, Babylon.js).&lt;/li&gt;
  &lt;li&gt;Бэкенд: Node.js, Python (FastAPI/Flask) или другой фреймворк для работы с базами данных.&lt;/li&gt;
  &lt;li&gt;Базы данных: Поддержка SQL (PostgreSQL, MySQL) и/или NoSQL (MongoDB).&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;Форматы данных:&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Указать поддерживаемые форматы векторных моделей (например, STL, OBJ, или специализированные биоинформатические форматы).&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;API:&lt;/b&gt;
&lt;ul&gt;
  &lt;li&gt;REST или GraphQL для взаимодействия с базами данных.&lt;/li&gt;
  &lt;li&gt;Документация API (например, с использованием Swagger/OpenAPI).&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;5. Ограничения и предположения&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Ограничения:&lt;/b&gt;
&lt;ul&gt;
  &lt;li&gt;Сроки разработки (например, 3 месяца).&lt;/li&gt;
  &lt;li&gt;Бюджет (если есть).&lt;/li&gt;
  &lt;li&gt;Ограничения по поддерживаемым устройствам/браузерам.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Предположения:&lt;/b&gt;
&lt;ul&gt;
  &lt;li&gt;Базы данных имеют стандартные API или доступ через SQL-запросы.&lt;/li&gt;
  &lt;li&gt;Пользователи имеют базовые навыки работы с веб-приложениями.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;p&gt;Есть над чем подумать.&lt;/p&gt;
</description>
</item>

<item>
<title>Как выбрать случаные записи из базы данных с помощь SQL?</title>
<guid isPermaLink="false">526</guid>
<link>https://antonlyakh.ru/blog/all/vybrat-sluchany-zapisi-iz-bazy-dannyh-s-pomosch-sql/</link>
<pubDate>Fri, 04 Jul 2025 10:50:59 +0300</pubDate>
<author>Антон Лях</author>
<comments>https://antonlyakh.ru/blog/all/vybrat-sluchany-zapisi-iz-bazy-dannyh-s-pomosch-sql/</comments>
<description>
&lt;p&gt;&amp;mdash; Элементарно, Ватсон.&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;SELECT * FROM table ORDER BY RANDOM() LIMIT num_records_to_select&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&amp;mdash; &lt;kbd&gt;num_records_to_select&lt;/kbd&gt; заменить на необходимое количество случайных записей.&lt;br /&gt;
&amp;mdash; Шерлок, глубина ваших познаний не сравниться ни с какой энцикопедией.&lt;br /&gt;
&amp;mdash; Бросьте, Ватсон, я просто много читаю.&lt;/p&gt;
</description>
</item>

<item>
<title>Краткое сравнение производительности SQLite и DuckDB</title>
<guid isPermaLink="false">524</guid>
<link>https://antonlyakh.ru/blog/all/kratkoe-sravnenie-proizvoditelnosti-sqlite-i-duckdb/</link>
<pubDate>Tue, 24 Jun 2025 19:14:45 +0300</pubDate>
<author>Антон Лях</author>
<comments>https://antonlyakh.ru/blog/all/kratkoe-sravnenie-proizvoditelnosti-sqlite-i-duckdb/</comments>
<description>
&lt;p class="loud"&gt;SQLite быстр с индексами, а DuckDB быстр без них&lt;/p&gt;
&lt;p&gt;DuckDB does not seem to work with indices as well as SQLite does but is blazingly fast when scanning large parts of the table.&lt;/p&gt;
&lt;p&gt;SQLite is great at using indices but takes its time when it has to look at the whole table.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.lukas-barth.net/blog/sqlite-duckdb-benchmark/"&gt;Benchmarking DuckDB vs SQLite for Simple Queries &lt;/a&gt;&lt;/p&gt;
</description>
</item>

<item>
<title>Викиданные и Викибаза</title>
<guid isPermaLink="false">487</guid>
<link>https://antonlyakh.ru/blog/all/vikidannye-i-vikibaza/</link>
<pubDate>Mon, 08 Jan 2024 16:20:24 +0300</pubDate>
<author>Антон Лях</author>
<comments>https://antonlyakh.ru/blog/all/vikidannye-i-vikibaza/</comments>
<description>
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://antonlyakh.ru/blog/pictures/wikidata-concept.png" width="800" height="575" alt="" /&gt;
&lt;div class="e2-text-caption"&gt;Из &lt;a href="https://en.wikipedia.org/wiki/Wikidata"&gt;статьи в Википедии о Викиданных&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;a href="https://www.wikidata.org/"&gt;Викиданные&lt;/a&gt; — это база разнообразных лексических концепций, которые могут прочитать как люди, так и машины. Фактически это база для обучения машин человеческим понятиям.&lt;/p&gt;
&lt;p&gt;Работает так: мы активно пишем статьи, семантически размечаем приведенные в тексте понятия, а викиботы их вытягивают и заносят в базу. Затем эти данные специальные алгоритмы используют для обучения нейросетей, с которыми мы потом и взаимодействуем.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Примерно так же мы учим детей, только здесь нам никто не говорит, что все, что мы объясним, потом может быть использовано против нас.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href="https://wikiba.se/"&gt;Викибаза&lt;/a&gt; — это набор программ, позволяющие извлекать и работать с данными из Викиданных.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;Все это открыто и бесплатно. Ну то есть поддержка софта, базы и серверов оплачивается специальными фондами (там ах-ные суммы), а все, кто данные вносят, делают это открыто и бесплатно)&lt;/p&gt;
</description>
</item>

<item>
<title>Система таксонов диатомовых микроводорослей в моих проектах</title>
<guid isPermaLink="false">453</guid>
<link>https://antonlyakh.ru/blog/all/sistema-taxonov-diatomovyh-v-moih-proektah/</link>
<pubDate>Mon, 23 May 2022 14:38:51 +0300</pubDate>
<author>Антон Лях</author>
<comments>https://antonlyakh.ru/blog/all/sistema-taxonov-diatomovyh-v-moih-proektah/</comments>
<description>
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://antonlyakh.ru/blog/pictures/Pseudostaurosira-cataractarum-[Beauger-et-al-2018].png" width="799" height="305" alt="" /&gt;
&lt;div class="e2-text-caption"&gt;Панцирь диатомовой микроводоросли &lt;i&gt;Pseudostaurosira cataractarum&lt;/i&gt;. Рис. 93, 94 из [&lt;a href="http://3d-microalgae.org/arxip/biblio/?biblio=Beauger-et__2018"&gt;Beauger et al., 2018&lt;/a&gt;]&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;В своих проектах я использую следующую простую иерархическую систему таксонов диатомовых микроводорослей.&lt;/p&gt;
&lt;p&gt;На верхнем уровне находятся все диатомовые водоросли. Чтобы не путаться с &lt;a href="https://antonlyakh.ru/blog/all/vysshie-taksony-diatomovyh-vodorosley/"&gt;высшими таксонами диатомовых&lt;/a&gt;, я считаю, что это просто отдельная безранговая группа микроорганизмов — &lt;i&gt;Bacillariophyta&lt;/i&gt;.&lt;/p&gt;
&lt;p&gt;На следующем уровне находятся два морфотаксона: &lt;a href="https://antonlyakh.ru/blog/tags/otlichie-centricheskih-i-pennatnyh-diatomovyh/"&gt;центрические и пеннатные диатомовые&lt;/a&gt;: &lt;i&gt;Centric&lt;/i&gt; и &lt;i&gt;Pennate&lt;/i&gt;.&lt;/p&gt;
&lt;p&gt;Они, в свою очередь, разделяются на морфотаксоны:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;центрические однополюсные &lt;i&gt;(Centic unipolar)&lt;/i&gt;,&lt;/li&gt;
&lt;li&gt;центрические двуполюсные &lt;i&gt;(Centric bipolar),&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;пеннатные бесшовные &lt;i&gt;(Pennate araphid),&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;пеннатные одношовные &lt;i&gt;(Pennate monoraphid)&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;пеннатные двушовные &lt;i&gt;(Pennate biraphid)&lt;/i&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Роды диатомовых я отношу к одному из этих морфотаксонов. К родам отношу виды, вариететы и формы. Считаю, что вариететы и формы имеют ранг вида.&lt;/p&gt;
&lt;p&gt;Получается следующая система:&lt;/p&gt;
&lt;hr /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Bacillariophyta&lt;/b&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;b&gt;&lt;i&gt;Centric&lt;/i&gt;&lt;/b&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;i&gt;Centic unipolar&lt;/i&gt;
&lt;ul&gt;
      &lt;li&gt;&lt;span style="color:#777"&gt;роды центрических однополюсных&lt;/span&gt;&lt;/li&gt;
    &lt;/ul&gt;
&lt;/li&gt;
    &lt;li&gt;&lt;i&gt;Centric bipolar&lt;/i&gt;
&lt;ul&gt;
      &lt;li&gt;&lt;span style="color:#777"&gt;роды центрических двуполюсных&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt; 
&lt;ul&gt;
  &lt;li&gt;&lt;b&gt;&lt;i&gt;Pennate&lt;/i&gt;&lt;/b&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;i&gt;Pennate araphid&lt;/i&gt;
&lt;ul&gt;
      &lt;li&gt;&lt;span style="color:#777"&gt;роды пеннатных бесшовных&lt;/span&gt;&lt;/li&gt;
    &lt;/ul&gt;
&lt;/li&gt;
    &lt;li&gt;&lt;i&gt;Pennate monoraphid&lt;/i&gt;
&lt;ul&gt;
      &lt;li&gt;&lt;span style="color:#777"&gt;роды пеннатных одношовных&lt;/span&gt;&lt;/li&gt;
    &lt;/ul&gt;
&lt;/li&gt;
    &lt;li&gt;&lt;i&gt;Pennate biraphid&lt;/i&gt;
&lt;ul&gt;
      &lt;li&gt;&lt;span style="color:#777"&gt;роды пеннатных двушовных&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;p&gt;Я не использую промежуточные традиционные таксоны ранга семейства или класса, потому что:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Высшие таксоны — это искусственные категории, созданные для нашего удобства. Они помогают классифицировать объекты живой природы или не помогают, если система высших таксонов выбрана неудачно.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Предложенная система высших таксонов диатомовых помогает мне решать задачи проектов, поэтому я ее использую. Когда возникнет необходимость что-то исправить или добавить, я модифицирую данную схему и напишу об этом.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;P. S.&lt;/b&gt; &lt;i&gt;Впредь буду ссылаться на эту заметку в статьях, где потребуется объяснить используемую систему высших таксонов диатомовых микроводорослей.&lt;/i&gt;&lt;/p&gt;
</description>
</item>


</channel>
</rss>