1:前言
今天給大家介紹乙個記憶體資料庫,純c#寫的。sharphsql。這個資料庫我的意見是:對於大量高併發的情況最好還是不要用這個資料庫。可能有些朋友會問「那你還給大家介紹? 」。呵呵,別慌,我們雖然不能在開發環境運用這個框架,但是我們可以看看他是怎麼一步一步實現了資料庫的。(有些地方和oracle的邏輯是一樣的)。如果您有興趣就繼續往下看。
2:提供的功能
該框架完全支援sql92標準,如下語句都可以執行
1:drop table if exist ***
2:create table *** (id int not null primary key, name lon**archar);
3:insert into *** () values ()
4:update *** set aa=bb where cc=1
5:select * from a,b,c where a.id=b.id and b.id=c.id order by a.id
6:select count(a) ,sum(b) from *** group by id
7:delete from ***
8:call abs(-1);
9:show databases;
10:show tables;
11:show alias;
12:show parameters
13:show columns
14:支援sql語句和儲存過程
15:支援事務
執行該框架會產生4中檔案
3:大概的框架邏輯
看如下的序列圖
簡單介紹一下重要的類
database:乙個資料庫,多個資料庫儲存到databasecontroller 中的hashtable中。
table:表,多個表名儲存到 database的hashtable中。表中含有以arraylist儲存的column(列)和index(索引),cache(資料)
column:一列的描述,包含列名稱,列值型別,列值是否為空什麼的
row:行,提供眾多有關行的方法但不儲存資料
select:查詢,提供眾多查詢的方法
access:許可權,所有user以arraylist形式儲存到這裡
cache:資料或是快取物件,完成記憶體資料與檔案資料的轉換
transaction:事務,
4:後記
該框架在啟動的時候是把所有的資料載入到記憶體中去,並且對於資料檔案時獨佔訪問的。這樣就導致他的應用環境最適合與手機等移動裝置。
最後給大家留個思考的問題
1:針對各種操作的的執行序列是什麼,為什麼這樣。其他商業資料庫的執行序列又是什麼那?(圖中已經提供了)
開源資料庫有感
這個星球上的資料庫實在不勝列舉,這裡只列一些我接觸過的常見的。可以稍微誇張點說,有互動的應用,起碼得用一下資料儲存,即便是自定義結構的資料儲存,還是最常見的ini xml等,都可以算是 資料庫 真正點的,如dbase系列 foxbase foxpro msaccess interbase ms sq...
資料庫開源ormlite
用途 運算元據庫 使用步驟 建立資料庫表結構的實體類.示例 databasetable tablename user public class user public user string name,int age,string tel 建立ormlitesqliteopenhelper的實現類....
開源的資料庫連線池 SQL Relay 介紹
開源的資料庫連線池 sql relay 介紹 概述 sql relay是個功能強大並且非常容易使用的持久資料庫連線池系統,能夠執行在unix linux系統下,能夠支援大部分主流的資料庫系統和大部分的程式語言,有效的減輕伺服器的負載和移植問題,是很多web應用資料庫連線池的乙個選擇。sql rela...