DBM
DBM (от англ. datbase manager) — платформенно-независимый механизм для хранения строк в файле как в хеше. И ключ, и ассоциированные с ним данные, должны быть строками. DBM как формат и программное средство для его обработки можно считать простейшим движком баз данных.
Формат и одноимённая утилита для его обслуживания созданы в 1979 году Кеном Томпсоном, с тех пор та или иная реализация такой утилиты входит в состав большинства Unix-подобных систем (ndbm в Unix-системах, gdbm в проекте GNU). Berkeley DB изначально была создана как высокопроизводительная альтернатива для утилиты dbm, сохранявшая тот же интерфейс (впоследствии развилась до встраиваемой СУБД со множеством прочих возможностей).
DBM реализован для ряда языков программирования в качестве библиотек; в Ruby входит в стандартный интерфейс ruby. Для его использования в Ruby нужно создать объект DBM с указанием для него имени файла, а дальше работать с ним как с обычным хешем, по завершении работы файл следует закрыть:
#Подключение DBM
require 'dbm'
#Создание нового объекта. Имя файла -- data
d=DBM.new("data")
#Присваивание ключу abc значения 123
d["abc"]="123"
#Закрытие dbm-файла
d.close
#Попытка получения доступа к закрытому dbm-файлу вызовет RuntimeError
puts d["abc"]
#Открытие ранее созданного dbm-файла
e=DBM.open("data")
#Вывод ранее созданных значений
puts e["abc"]
#Преобразование в хеш. f = {"abc"=>"123"}
f=e.to_hash
#Закрытие dbm-файла
e.close
Интерфейс к DBM реализован в виде одного класса, к которому подмешан модуль Enumerable. Два синонимичных метода класса new и open являются одиночками, то есть в любой момент времени можно иметь только один объект DBM, связанный с данным файлом. Почти все операции с хешем применимы к объекту DBM. Метод to_s возвращает строковое представление идентификатора объекта.
Ссылки
- Olsen, Bostic & Seltzer. Berkeley DB. Архивировано из оригинала 5 января 2013 года.
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.