⑴ C#開源輕量級對象資料庫NDatabase介紹[1]
前言
NDatabase是一個易於使用的 NET對象資料庫 為了避免關系資料庫帶來的開銷 可以嘗試用NDatabase NDatabase是新一代的面向對象資料庫 個原生的 NET資料庫持久層 它的主要特徵有
·簡單 NDatabase非常簡單 很容易學習上手使用 它API是簡單 不需要學習任何資料庫映射技術 不需要對象和存儲持久層之間的映射 NDatabase以最簡單的方式存儲對象 不需要安裝和管理
·小 NDatabase 運行時小於 Kb 部署程序的時候 很容易集成到 NET應用程序中去
·安全健壯 NDatabase支持ACID事務處理 保證數據的完整性 即使在硬體故障的情況下 所有的提交工作都會應用到資料庫 在下一次啟動的時候自動執行
·單一資料庫文件 NDatabase使用單一的文件存儲所有的數據 包括元數據 對象 索引等
·生產率 NDatabase使用很少的代碼來進行數據持久化 不需要映射 因此 開發人員可以專注於業務邏輯的實現 而不是在數據持久層浪費時間
NDatabase入門
基礎設置
NDatabase中所有的資料庫引擎設置都在OdbConfiguration類中 如BTree Validation 和BTree index degree的設置都在這個類裡面 打開日誌的設置也在這個類裡面 NDatabase提供了默認的日誌類實現 ConsoleLogger 可以使用OdbConfiguration類中的EnableConsoleLogger方法進行設置 實現好自定義的日誌類後 還需要進行注冊RegisterLogger方法 才能夠使用
OdbConfiguration RegisterLogger(new Log NetLogger())
使用索引
使用IOdb介面的IndexManagerFor方法可以為指定類型添加索引 如
using (var odb = OdbFactory Open( index ndb ))
{
var fields = new[] { Name };
odb IndexManagerFor<Player>() AddUniqueIndexOn( nameIndex fields)
odb IndexManagerFor<Game>() AddIndexOn( nameIndex new[] { Result })
}
使用事務
NDatabase可以使用事務來保證數據的完整性(ACID:原子性 一致性 隔離性 持久性) 當一個NDatabase被打開後 將會自動創建一個會話 包含一個特殊的當前事務對象 這個事務對象實例管理當前所有的數據和數據操作行為
內存資料庫模式
NDatabase可以將資料庫所有數據直接載入到內存中 直接使用OdbFactory方法的 OpenInMemory即可
關於觸發器
要增加一個觸發器 首先要建立一個實現了Trigger 介面()的類 該介面有 種可用的類型(InsertTrigger UpdateTrigger SelectTrigger DeleteTrigger) 如
public class MyTrigger : InsertTrigger
{
public override bool BeforeInsert(object obj)
{ return true; }
public override void AfterInsert(object obj OID oid)
{ }
}
在使用過程中 打開資料庫後 要注冊觸發器 才能使用
var mage = new Mage( Merlin )
var myTrigger = new MyTrigger()
using (var odb = OdbFactory Open( inserting_trigger db ))
{
odb TriggerManagerFor<Mage>() AddInsertTrigger(myTrigger)
odb Store(mage)
}
lishixin/Article/program/net/201311/16138
⑵ 有完全免費的資料庫軟體么
1. SQL Server
只能在windows上運行,沒有絲毫的開放性,操作系統的系統的穩定對資料庫是十分重要的。Windows9X系列產品是偏重於桌面應用,NT server只適合中小型企業。而且windows平台的可靠性,安全性和伸縮性是非常有限的。它不象unix那樣久經考驗,尤其是在處理大資料庫。
2. Oracle
能在所有主流平台上運行(包括 windows)。完全支持所有的工業標准。採用完全開放策略。可以使客戶選擇最適合的解決方案。對開發商全力支持。
3. Sybase ASE
能在所有主流平台上運行(包括 windows)。 但由於早期Sybase與OS集成度不高,因此VERSION11.9.2以下版本需要較多OS和DB級補丁。在多平台的混合環境中,會有一定問題。
4. DB2
能在所有主流平台上運行(包括windows)。最適於海量數據。DB2在企業級的應用最為廣泛,在全球的500家最大的企業中,幾乎85%以上用DB2資料庫伺服器,而國內到97年約佔5%。