一、数据库基本知识
(1)大多数数据库的函数库用两个文件存储信息:一个索引文件,一个是数据文件。索引文件包含键值和指向数据记录的指针,有许多技术可以用来组织索引文件,以提高按键查询的效率,散列法和B+树(B数能够用键的顺序来遍历数据库)是常用的两种技术。
(2)集中式和非集中式:当有多个进程访问同一数据库时,可以有两种方法实现库函数
集中式:由一个进程作为数据库管理者,所有数据库的访问工作由此进程完成,其他进程并通过IPC机制于此进程进行联系。(可以根据需要对操作模式进行调整,例如优先级,数据库回复变得简单)
非集中式:每个库函数独立申请并发控制(加锁机制),然后自己调用IO函数。(速度快)
二、linux自带的数据库dbm
1、dbm是一个非常轻量级的软件,它无需安装独立的数据库服务器。
2、dbm可以索引变长的数据结构,而且检索的速度快。
3、Dbm访问函数
4、dbm的采用固定大小的散列表来组织索引文件结构,并采用链表法解决散列冲突。
(1)索引文件:由空闲链表、散列表和索引记录组成。
(2)
当给定键值时,会根据键值计算散列值,由此散列值可以确定一条散列链,并沿着这条散列链找到索引记录。
5、DBM采用非集中式方法,对多进程访问数据库的控制。涉及粗锁和细锁。