Jump to content

Метакит

Метакит
Разработчик(и) Жан-Клод Випплер
Стабильная версия
2.4.9.8 / 19 июня 2015 г .; 9 лет назад ( 19.06.2015 )
Написано в С++
Операционная система Кросс-платформенный
Тип Библиотека разработки
Лицензия МОЯ лицензия
Веб-сайт https://github.com/jcw/jcw.github.io/tree/main/zips

Metakit — это встроенная библиотека базы данных небольшого размера. Он заполняет пробел между с плоскими файлами , реляционными , объектно-ориентированными и древовидными базами данных базами данных , поддерживая реляционные соединения, сериализацию, вложенные структуры и мгновенную эволюцию схемы. интерфейсы для C++ (родной), Python и Tcl Наиболее часто используются .

Metakit был написан Жан-Клодом Випплером , разработчиком программного обеспечения из Нидерландов . [ 1 ] Его разработка началась примерно в 1997 году, а в 2001 году он был выпущен с открытым исходным кодом под лицензией MIT X11 . Автор оказывает коммерческую поддержку. Однако в последние несколько лет Уипплер уделял меньше времени Metakit и больше — другим своим проектам.

База данных используется в нескольких коммерческих продуктах (включая адресную книгу в Mac OS X 10.4 и более ранних версиях), а также в нескольких проектах с открытым исходным кодом (например, KDE программа чтения каналов Akregator ) и собственных проектах (обычно использующих интерфейс Python или TCL). Связанный с ним проект Starkit ( виртуальная файловая система для TCL), написанный Wippler, приобрел популярность среди программистов TCL.

Список рассылки Metakit имеет активных подписчиков и регулярно публикуется Wippler. [ когда? ] Другие разработчики внесли в проект исправления ошибок и предложения.

В отличие от большинства других систем баз данных базы данных , которые хранят строки таблицы в одном месте (строкоориентированная архитектура), Metakit хранит отдельные столбцы отдельно ( столбцово-ориентированная архитектура ). В течение многих лет был возможен только линейный доступ к таблицам (со сложностью O(1) для доступа и O(N) для поиска), позже были добавлены хеш-структуры и структуры, подобные B-дереву (снижение типичной сложности поиска до O(1) ). Реляционные операции (такие как группировка и объединение ) также были добавлены с течением времени. Табличные данные можно комбинировать и обрабатывать с помощью гибких механизмов, называемых представлениями . Данные базы данных переносимы между платформами. Затраты на дисковое пространство в Metakit очень низкие — несколько методов автоматически используются для их максимального уменьшения. средство просмотра структур базы данных Metakit (названное Kitview Предоставляется ).

Практический предел размера базы данных составляет около 1 ГБ (даже на 64-битных платформах). Многопоточный и многопользовательский доступ требует ручной поддержки со стороны программиста и не рекомендуется (в C++, TCL и Python автоматически используется одна глобальная блокировка). Комбинации более продвинутых функций часто не тестируются и могут дать сбой. Можно добиться несколько большей производительности, чем с другими базами данных (опубликованные тесты включают SQLite и Berkeley DB ), но это требует длительного тестирования и большого знания внутреннего устройства Metakit. Metakit API является низкоуровневым по сравнению с SQL .

Самый большой недостаток Metakit — его довольно разрозненная, а иногда и устаревшая документация . Полное понимание ее API и настройки производительности требует глубокого изучения исходного кода библиотеки. Терминология метакитов имеет много отличий от стандартной терминологии баз данных. API и формат файла со временем менялись несколько раз.

Metakit протестирован на Windows , Unix и Mac OS X.

Языковые привязки

[ редактировать ]
  • C++ (родной): Metakit написан на C++ (без использования его новых функций, поэтому с ним могут справиться даже очень старые компиляторы).
  • Python : называется Mk4py
  • Tcl : называется Mk4tcl , с дополнительной объектно-ориентированной привязкой сверху под названием Oomk .
  • Другие языки могут быть подключены с помощью SWIG .
[ редактировать ]
  1. ^ Ландерс, Стив. « KitView — инструмент пользовательского интерфейса для MetaKit », Материалы конференции AUUG, 2001. 63.
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 2665ba47d258edf224ff528e99d81db9__1707741120
URL1:https://arc.ask3.ru/arc/aa/26/b9/2665ba47d258edf224ff528e99d81db9.html
Заголовок, (Title) документа по адресу, URL1:
Metakit - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)