查询Oracle Berkeley DB中记录的概念

时间:2014-04-12 18:00:52

标签: c database berkeley-db

根据link,我了解到berkeley DB中的记录为(key,value),而记录是关系模型数据库中的tuple(表中的一行)。

但是当我运行使用Oracle berkeley DB C API的示例应用程序(display.exe)时,我得到以下表格信息

$ display

table1
table2
table3
table4

在下面的commaond中,我得到table1

$ display table1

enter image description here

从上表中我了解到,任何使用berk DB API的应用都可以放置/获取数据并实际以(key,value)的形式在内部存储,如(Colname1,0x300003) (Colname2, World) (Colname3, 0x10040) (Colname4, World) (Colname1, 0x30004a) (Colname2, 'EnterpriseVPN M')...但是,我们在表格的形式,因为display模块在​​内部获取(键,值)对并将其表示为表行。

我的理解是否正确?

1 个答案:

答案 0 :(得分:1)

不太正确。在您的示例中,关键不明显。每个"表"可能是一个数据库。 "值"将是一个包含四个字段的C结构:Colname1,Colname2,Colname3和Colname4。与关系数据库不完全相反。在这里,记录仍然是一行。

但是,您必须选择其中一个字段作为密钥 - 您必须决定索引数据的方式。虽然BDB能够处理重复键,但您可能会发现在实践中使用它会有问题。所以,你的密钥应该是唯一的。

例如,Colname1中的数据可能是键吗?如果是这样,您可以执行db-> get(0x300039)并使用0x300039,MgmtInventory,0x25e0000和MgmtInventory检索记录。