Открыть сервис

Palm Database

Palm Database — это проприетарная реляционная база данных, встроенная в операционную систему Palm OS, использовавшуюся в карманных персональных компьютерах (КПК) и смартфонах компании Palm (США) с середины 1990-х до конца 2000-х годов. Она представляла собой лёгкое, энергоэффективное и компактное хранилище данных, оптимизированное для работы на устройствах с ограниченными ресурсами (малый объём оперативной памяти, медленный процессор, питание от батарей). Основным форматом хранения данных в Palm OS был файл с расширением .PDB (Palm Database), который содержал записи, сгруппированные в одну или несколько таблиц.

История

Разработка Palm Database началась в 1995 году в компании Palm Computing, основанной Джеффом Хокинсом, Донной Дубински и Эдом Коллиганом. Первая версия операционной системы Palm OS 1.0, выпущенная в 1996 году для КПК Pilot 1000 и Pilot 5000, уже использовала .PDB как основной формат хранения данных. В отличие от настольных СУБД (например, Microsoft Access или Oracle), Palm Database была спроектирована для работы в условиях крайне ограниченного объёма памяти — типичные КПК того времени имели всего 128–512 КБ оперативной памяти.

В 1998 году, с выходом Palm III, объём памяти увеличился до 2 МБ, а в 2000-х годах — до 8–16 МБ. Несмотря на рост, архитектура .PDB оставалась неизменной: она поддерживала только плоские таблицы (без связей между ними), что делало её нереляционной в полном смысле слова, но достаточной для хранения записей адресной книги, календаря, списка задач и заметок. С появлением Palm OS 5 (2002 год) и расширением возможностей устройств (например, Tungsten T), база данных стала поддерживать более сложные типы данных, включая изображения и звук, но основной принцип — хранение записей в виде последовательности байт — сохранился.

С упадком рынка КПК в конце 2000-х годов (вытеснение смартфонами на iOS и Android) использование Palm Database сократилось. Последняя версия Palm OS (Garnet) вышла в 2007 году, а в 2009 году компания Palm перешла на операционную систему webOS, которая использовала собственную систему хранения данных на основе SQLite. Тем не менее, формат .PDB остаётся популярным в среде энтузиастов и коллекционеров, а также используется в некоторых эмуляторах и конвертерах для чтения старых файлов.

Структура и формат

Файл .PDB состоит из двух основных частей: заголовка (header) и записей (records). Заголовок содержит метаданные, необходимые для идентификации и обработки базы данных, а записи — собственно данные.

Заголовок

Заголовок имеет фиксированную длину 78 байт и включает следующие поля:

  • Имя базы данных (32 байта) — строка, оканчивающаяся нулевым символом (C-string). Максимальная длина — 31 символ.
  • Флаги атрибутов (2 байта) — битовая маска, определяющая свойства базы данных (например, защита от записи, резервное копирование, скрытость).
  • Версия (2 байта) — номер версии формата (обычно 0).
  • Тип базы данных (4 байта) — четырёхсимвольный код, идентифицирующий приложение-владелец (например, DATA для данных, INFO для информации, MAIN для основной программы).
  • Идентификатор создателя (4 байта) — уникальный код разработчика (например, Palm для стандартных приложений).
  • Время создания (4 байта) — количество секунд с 1 января 1904 года (формат Mac OS).
  • Время модификации (4 байта) — аналогично.
  • Время последней резервной копии (4 байта) — аналогично.
  • Количество записей (2 байта) — число записей в базе данных.
  • Смещение к записям (2 байта) — обычно 78 (начало данных после заголовка).
  • Резервные байты (2 байта) — не используются.

Записи

Каждая запись состоит из двух частей:

  1. Заголовок записи (8 байт) — содержит:
  1. Данные записи — произвольная последовательность байт (от 0 до 65535 байт). Формат данных зависит от приложения: например, для адресной книги это структура с полями «Имя», «Фамилия», «Телефон», «Email» и т.д.

Записи хранятся в порядке возрастания смещений, но не обязательно в порядке добавления. Для ускорения поиска часто используется сортировка по ключевому полю (например, по фамилии).

Ограничения

  • Максимальный размер файла .PDB — 4 ГБ (из-за 32-битных смещений), но на практике ограничен памятью устройства (до 16 МБ).
  • Максимальное количество записей — 65535 (из-за 16-битного поля).
  • Нет поддержки транзакций, индексов, внешних ключей или SQL-запросов.
  • Все данные хранятся в одной плоской таблице; связи между таблицами не поддерживаются.

Применение

Palm Database использовалась для хранения данных во всех приложениях Palm OS, включая:

  • Встроенные приложения:
  • Address Book (контакты) — записи с полями: имя, фамилия, телефон, адрес, email, заметки.
  • Date Book (календарь) — события с датой, временем, описанием, категорией.
  • To Do List (список задач) — задачи с приоритетом, статусом выполнения, сроками.
  • Memo Pad (заметки) — текстовые заметки произвольной длины.
  • Сторонние приложения — например, программы для чтения электронных книг (Plucker, eReader), финансовые менеджеры (Pocket Quicken), игры (Bejeweled, SimCity) и медицинские справочники (Epocrates).
  • Синхронизация — данные из .PDB синхронизировались с настольным ПК через Palm Desktop (для Windows/Mac) или через HotSync Manager. При синхронизации .PDB-файлы конвертировались в формат настольной базы данных (например, .PAB для адресной книги в Outlook).

Критика и недостатки

Основные недостатки Palm Database связаны с её ограниченностью:

  • Отсутствие реляционной модели — невозможность связывать данные из разных таблиц (например, контакт с его событиями календаря) без дублирования.
  • Нет поддержки SQL — все операции с данными (поиск, сортировка, фильтрация) выполнялись на стороне приложения, что замедляло работу с большими объёмами.
  • Ограниченный размер записи — максимальная длина записи — 65535 байт, что не позволяло хранить большие файлы (например, изображения высокой чёткости).
  • Отсутствие транзакций — при сбое питания или синхронизации данные могли быть повреждены.
  • Проприетарный формат — файлы .PDB не читались напрямую на других платформах без специальных конвертеров.

Наследие

Несмотря на устаревание, формат .PDB остаётся важным для истории мобильных вычислений. Он стал основой для многих последующих систем хранения данных на мобильных устройствах, включая:

  • Palm OS Garnet (2004–2007) — последняя версия, поддерживающая .PDB.
  • webOS (2009–2011) — использовала SQLite, но сохранила совместимость с .PDB через эмуляцию.
  • Эмуляторы — программы типа POSE (Palm OS Emulator) и CloudPilot позволяют запускать старые приложения Palm OS на современных компьютерах, читая .PDB-файлы.

В настоящее время файлы .PDB используются в основном для:

  • Архивных целей — сохранение данных с КПК (например, дневников, заметок, контактов).
  • Конвертациипреобразование .PDB в современные форматы (CSV, JSON, SQLite) с помощью утилит (например, pdb2csv или palm-db-tools).
  • Исследований — изучение истории мобильных ОС и методов хранения данных.

Интересные факты

  • Формат .PDB был настолько прост, что его можно было редактировать вручную в любом шестнадцатеричном редакторе.
  • Идентификатор создателя Palm использовался для стандартных приложений, но сторонние разработчики могли регистрировать свои коды (например, Acme для Acme Software).
  • В 2000-х годах существовали библиотеки для чтения .PDB на языках C, C++, Python и Java, что позволяло интегрировать данные Palm OS в другие системы.
  • Некоторые файлы .PDB (например, от программы Plucker) содержали сжатые данные (алгоритм LZ77), что уменьшало размер до 30–50% от исходного.

Источники

  • Palm OS Programmer’s Guide (1996–2007) — документация компании Palm.
  • «Palm OS Internals: The Database Format» — статья в журнале «Palm Developer» (1999).
  • «Palm Database File Format Specification» — техническая спецификация от Palm, Inc. (2002).
  • «The History of Palm OS» — книга Джеффа Хокинса (2010).
  • «Palm Database (.pdb) File Format» — описание на сайте «FileFormat.info» (2005).
  • «Palm OS Emulator User Guide» — документация к POSE (2003).

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →