在程式的啟動過程中,第一項任務,在沒執行main函式之前,通過register巨集定義,把錶的結構儲存在乙個全域性變數的列表中static dbtabledescriptor* chain;,由於此時資料庫還沒有啟動,所以結構只儲存在記憶體中,在硬碟上是不存在的,
當呼叫資料庫的open函式時,裡面呼叫loadscheme函式,把記憶體中的表結構儲存到硬碟上,這個函式還可以進行反向操作,就是把硬碟上已有的表結構來更新記憶體中的鍊錶
在記憶體中存在 dbtabledescriptor 和 dbfielddescriptor 這兩種資料結構,與硬碟上的 dbtable 和 dbfield,在使用的過程中,記憶體的dbtabledescriptor 相當於資料字典,它在資料庫的啟動過程中會和dbtable 時行一次同步,
在硬碟上,表的儲存結構如下:
(dbtable->firstrow)--->( dbrecord(row1)->next )--->( dbrecord(row2)->next ))--->( dbrecord(row3)->next ) .............
firstrow 和 next 域全儲存的是下乙個物件的oid,通過oid可從index 裡面找到對應物件在檔案中的偏移位置,就能得到下乙個物件,其實是雙向鍵表,為了簡單只畫成了單向的
fastdb在儲存的時候,不像普通的資料庫,如postgresql把同屬於乙個表的記錄儲存在乙個物理頁面中,fastdb在乙個物理頁面中可能可能儲存屬於不同表的記錄,完全取決於儲存的順序
Oracle中的資料字典
資料字典 定義 資料字典是oracle資料庫中最重要的組成部分,記錄了資料庫的系統資訊,它是唯讀表和檢視的集合,資料字典的所有者為sys使用者 使用者只能在資料字典上執行查詢操作,而其維護和修改是由系統自動完成的!資料字典的組成 包括資料字典基表和資料字典檢視 其中基表儲存資料庫的基本資訊,普通使用...
Oracle中的資料字典技術
資料字典是 oracle 存放有關資料庫資訊的地方,其用途是用來描述資料的。比如乙個表的建立者資訊,建立時間資訊,所屬表空間資訊,使用者訪問許可權資訊等。當使用者在對資料庫中的資料進行操作時遇到困難就可以訪問資料字典來檢視詳細的資訊。oracle 中的資料字典有靜態和動態之分。靜態資料字典主要是在使...
AndiffCMS中字段的資料字典
在andiffcms中,欄位是包含在模型裡面的。字段就是資料表裡面的字段,欄位是整個andiffcms的基本元素,字段表fa column,資料字典如下 欄位名稱 型別 長度 預設值 備註 idvarchar 主鍵,guid columnname varchar 列名 一般來說是註解 columne...