Computer >> Máy Tính >  >> Lập trình >> Python

Giao diện Python với cơ sở dữ liệu Unix (dbm)

Gói dbm trong thư viện tích hợp sẵn của Python cung cấp một từ điển giống như một cơ sở dữ liệu kiểu DBM giao diện. Thư viện dbm là một công cụ cơ sở dữ liệu đơn giản, được viết bởi Ken Thompson. DBM là viết tắt của DataBase Manager, được sử dụng bởi hệ điều hành UNIX, thư viện lưu trữ dữ liệu tùy ý bằng cách sử dụng một khóa duy nhất (khóa chính) trong các nhóm có kích thước cố định và sử dụng kỹ thuật băm để cho phép truy xuất nhanh dữ liệu bằng khóa.

Có các mô-đun sau trong gói dbm &trừ;

Mô-đun dbm.ndbm cung cấp một giao diện cho thư viện Unix “(n) dbm”. Các đối tượng dbm hoạt động giống như từ điển, với các khóa và giá trị phải được lưu trữ dưới dạng byte. Mô-đun không hỗ trợ và các phương thức items () và giá trị ().

Mô-đun dbm.dumb cung cấp một giao diện giống như từ điển liên tục được viết hoàn toàn bằng Python. Không giống như các mô-đun khác, chẳng hạn như dbm.gnu, không cần thư viện bên ngoài. Như với các ánh xạ liên tục khác, các khóa và giá trị luôn được lưu trữ dưới dạng byte.

Các mô-đun này được sử dụng nội bộ bởi mô-đun giá đỡ của Python. Như trong trường hợp cơ sở dữ liệu kệ, tên cơ sở dữ liệu do người dùng chỉ định mang hậu tố '.dir'. Hàm whichdb () của đối tượng dbm cho biết việc triển khai dbm nào khả dụng trên cài đặt Python hiện tại.

>>> dbm.whichdb('mydbm.db')

'dbm.dumb'

>>> db = dbm.open('mydbm.db','n')
>>> db['name'] = Rajani Deshmukh'
>>> db['address'] = 'Shivajinagar Pune'
>>> db['PIN'] = '431001'
>>> db.close()

Hàm open () cho phép chế độ các cờ này -

Giá trị Ý nghĩa
'r'
Mở cơ sở dữ liệu hiện có để chỉ đọc (mặc định)
'w'
Mở cơ sở dữ liệu hiện có để đọc và ghi
'c'
Mở cơ sở dữ liệu để đọc và ghi, tạo nó nếu nó không tồn tại
'n'
Luôn tạo cơ sở dữ liệu mới, trống, mở để đọc và ghi

Đối tượng dbm là một từ điển giống như một đối tượng, cũng giống như một đối tượng kệ. Do đó tất cả các thao tác từ điển có thể được thực hiện. Đối tượng dbm có thể gọi các phương thức get (), pop (), append (0 và update (). Đoạn mã sau sẽ mở 'mydbm.db' với cờ 'r' và lặp qua tập hợp các cặp khóa-giá trị.

>>> db = dbm.open('mydbm.db','r')
>>> for k,v in db.items():
print (k,v)
b'name' : Rajani Deshmukh'
b'address' : b'Shivajinagar Pune'
b'PIN' : b'431001'

các đối tượng dbm cũng cung cấp các phương thức sau -

sync (): Đồng bộ hóa thư mục trên đĩa và các tệp dữ liệu. Phương thức này được gọi bằng phương thức Shelve.sync ().

close (): Đóng cơ sở dữ liệu dbm.

Các đối tượng gnu dbm có các phương thức sau -

khóa đầu tiên ()

Có thể lặp lại mọi khóa trong cơ sở dữ liệu bằng cách sử dụng phương thức này và phương thức nextkey (). Phương thức này trả về khóa bắt đầu.

gdbm .nextkey (key): Trả về khóa theo sau khóa trong truyền tải.

gdbm .reorganize (): chức năng này sẽ tổ chức lại cơ sở dữ liệu. Các đối tượng gnu dbm sẽ không rút ngắn độ dài của tệp cơ sở dữ liệu ngoại trừ bằng cách sử dụng tổ chức lại này; nếu không, không gian tệp đã xóa sẽ được giữ lại và sử dụng lại khi các cặp (khóa, giá trị) mới được thêm vào.